在我的搜索过程中,我找到了几种签署SSL证书签名请求的方法:
使用x509
模块:
openssl x509 -req -days 360 -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt
Run Code Online (Sandbox Code Playgroud)使用ca
模块:
openssl ca -cert ca.crt -keyfile ca.key -in server.csr -out server.crt
Run Code Online (Sandbox Code Playgroud)注意:我不确定是否使用了正确的参数.如果我要使用它,请告知正确的用法.
应该使用哪种方式与证书颁发机构签署证书请求?一种方法比另一种方法更好(例如,一种方法被弃用)?
我正在创建一个CSR,我想知道哪个可以说是我的RSA密钥的最佳长度.
当然,384可能太弱了,16384可能太慢了.
是否应该使用密钥长度达成共识,具体取决于证书的生命周期?
编辑:像大多数人一样,我希望我的钥匙能够相当强大.我并不担心国家安全局可能会在2019年破坏我的密钥.我只想知道当一个人计划做正常业务时最好的做法是什么(例如电子商务网站)
我正在使用iPhone Developer Portal中的Development Provisioning Assistant,但当我到达要求我生成并上传CSR的部分时,我尝试上传它,它只是给了我这个错误:
选择的CSR无效.请检查文件,然后重试.
有谁知道这意味着什么或我能做些什么?谢谢!
我知道如何使用CSR签名openssl
,但结果证书是x509 v1,而不是v3.
我正在使用以下命令:
x509 -req -days 365 -in myCSR.csr -CA myCA.crt -CAkey myCA.key -CAcreateserial -out userCertificate.crt
Run Code Online (Sandbox Code Playgroud)
我搜索过,但一直无法找到解决方案.有没有其他方式以编程方式执行此操作?
我需要创建一个csr文件,以便将其提供给某人.
csr文件用于Azure应用程序的SSL证书.
当我谷歌时,我发现有关生成csr文件的位置的信息不一致.
一些消息来源说:我必须在运行Web应用程序的服务器上创建csr文件.
在我的情况下,天蓝色的服务器是未知的.我不能在那里跑任何东西......
或者可以在我的本地电脑上使用所有公司数据创建csr +使用自定义域填写主题?
我从过去4年开始在Apple开发人员门户网站上生成分发证书,但这次我在上传.certSigningRequest文件时遇到错误.
我创建它就像我一直创建的那样,即Keychain Access - >从证书颁发机构申请证书 - >用户电子邮件地址(开发应用程序ID) - >保存到磁盘 - >完成
我还更新了Apple全球开发者关系证书颁发机构证书,但没有找到运气.
更新
我在创建.certSigningRequest时没有留下Common Name字段解决了这个问题.
我正在试图找出如何.csr
在Windows下安装证书,但可能唯一的方法是将其转换为其他格式(可能与openssl
),但我不知道如何.
你有什么建议吗?
我正在尝试使用带有自签名证书的Node.js 0.8.8创建TLS服务器/客户端设置.
基本的服务器代码看起来像
var tlsServer = tls.createServer({
key: fs.readFileSync('server-key.pem'),
cert: fs.readFileSync('server-cert.pem')
}, function (connection) {
// [...]
});
tlsServer.listen(3000);
Run Code Online (Sandbox Code Playgroud)
现在,当我尝试连接到此服务器时,我使用以下代码:
var connection = tls.connect({
host: '192.168.178.31',
port: 3000,
rejectUnauthorized: true,
ca: [ fs.readFileSync('server-cert.pem') ]
}, function () {
console.log(connection.authorized);
console.log(connection.authorizationError);
console.log(connection.getPeerCertificate());
});
Run Code Online (Sandbox Code Playgroud)
如果我删除该行
ca: [ fs.readFileSync('server-cert.pem') ]
Run Code Online (Sandbox Code Playgroud)
从客户端代码,Node.js抛出一个错误告诉我DEPTH_ZERO_SELF_SIGNED_CERT
.据我了解,这是因为它是一个自签名证书,没有其他方信任该证书.
如果我删除
rejectUnauthorized: true,
Run Code Online (Sandbox Code Playgroud)
同样,错误消失了 - 但是connection.authorized
等于false
有效意味着我的连接没有加密.无论如何,使用getPeerCertificate()
我可以访问服务器发送的证书.由于我想强制执行加密连接,我知道我可能不会删除此行.
现在我读到我可以使用该ca
属性来指定我希望Node.js信任的任何CA. TLS模块的文档意味着它足以将服务器证书添加到ca
阵列,然后一切都应该没问题.
如果我这样做,这个错误就消失了,但我得到了一个新错误:
Hostname/IP doesn't match certificate's altnames
Run Code Online (Sandbox Code Playgroud)
对我而言,这意味着CA现在基本上是可信的,因此现在没问题,但证书是为我使用的主机之外的其他主机制作的.
我使用创建了证书
$ …
Run Code Online (Sandbox Code Playgroud) 我有一个快速的问题.我为多个客户开发iOS应用程序.每个客户都有自己的Apple帐户,我从我的机器为他们创建证书.我的问题是,我可以使用相同的CSR文件为不同的公司创建证书吗?谢谢.