我想知道在Mac OS X(Snow Leopard,现在Lion)中使用哪个私钥Keychain Access.每当我使用该应用程序创建CSR时,它甚至不会要求使用私钥.那么它使用哪一个呢?
如果您在证书列表中选择了一个,我可以想象它使用了所选的一个.但是,如果所选项目不是私钥,则生成请求甚至可以在根本没有选择任何内容时使用,或者确保它不是"不可见"选择.
有人知道吗?
提前致谢
阿恩
我正在尝试开始Safari扩展开发,但我不断收到"没有Safari扩展开发人员证书"错误.
我在这里遵循openssl说明: 在Windows中制作CSR证书(7)
我将CSR文件上传到developer.apple.com,我下载了生成的文件并将其安装在Personal and Trusted Root Certification Authorities商店中.扩展构建器中没有任何操作.
这里的最高回应让我想到: Safari没有检测到我的扩展证书
它说"在另一台机器上你没有与证书相关的私钥".
我看到openssl命令为我生成了一个私钥文件.我是否需要在Safari或操作系统中的其他位置使用它?
我已经尝试了一整天了,我感觉我在这里错过了一些明显的东西.你能说出它可能是什么吗?
我生成了RSA密钥,我的后端发送了 3 个参数BASE64(签名算法除外)以供CSR我创建:
"subject" : "MIGfMQswCQYDVQQGEwJJUjEvMC0GA1UEAwwmMTAwMDAwMzg1MDA3NjAxMy3YqNmH2LLYp9ivINi12KfYr9mC24wxGTAXBgNVBAUTEDEwMDAwMDM4NTAwNzYwMTMxEzARBgNVBCoMCtio2YfYstin2K8xEzARBgNVBAQMCti12KfYr9mC24wxGjAYBgkqhkiG9w0BCQEWC2luZm9AdWlkLmly",
"extensions" : "MDMwDgYDVR0PAQH/BAQDAgXgMBYGA1UdJQEB/wQMMAoGCCsGAQUFBwMCMAkGA1UdEQQCMAA="
"signatureAlgorithm" : "SHA256_WITH_RSA"
Run Code Online (Sandbox Code Playgroud)
我在 Android/java 中有用于BouncyCastle执行此操作的示例代码:
byte[] subjectBytes = EncodingUtils.decode(receivedSubject);
byte[] extensionsBytes = EncodingUtils.decode(receivedExtensions);
X500Name subject = X500Name.getInstance(ASN1Primitive.fromByteArray(subjectBytes));
Extensions extensions = Extensions.getInstance(ASN1Primitive.fromByteArray(extensionsBytes));
PKCS10CertificationRequestBuilder p10Builder = new JcaPKCS10CertificationRequestBuilder(subject, publicKey);
if (extensions != null)
p10Builder.addAttribute(PKCSObjectIdentifiers.pkcs_9_at_extensionRequest, extensions);
ContentSigner signer = new ContentSigner() {
final ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
@Override
public AlgorithmIdentifier getAlgorithmIdentifier() {
return new DefaultSignatureAlgorithmIdentifierFinder()
.find(receivedAlgorithm);
}
@Override
public OutputStream getOutputStream() {
return this.outputStream; …Run Code Online (Sandbox Code Playgroud) 我使用openssl命令创建一个带有椭圆曲线secp384r1的CSR和使用算法sha384签名的哈希:
openssl ecparam -out ec_client_key.pem -name secp384r1 -genkey
openssl req -new -key ec_client_key.pem -out ec_clientReq.pem
然后我用这个命令以可读格式显示CSR:
openssl req -in ec_clientReq.pem -noout -text
在CSR的签名部分,我得到了这个:
Run Code Online (Sandbox Code Playgroud)Signature Algorithm: ecdsa-with-SHA1 30:64:02:30:06:a1:f2:5e:1b:34:18:b9:f3:7c:e9:52:c8:78: 99:90:63:d2:1e:d2:f5:7a:25:f3:d6:4d:6d:90:d0:bf:25:45: 15:ad:aa:17:34:ad:1a:b9:1e:67:2b:cf:d7:a6:9b:e5:02:30: 31:fe:76:37:4b:11:3a:e7:2d:63:52:bb:18:2f:8e:43:a7:bb: 65:74:38:a4:92:38:9d:eb:ec:22:8f:77:f3:e4:5f:47:2d:f8: 2a:9b:e1:2c:ba:a7:b0:e6:c2:54:8d:0e
为了获得签名算法"ecdsa-with-SHA384"而不是"ecdsa-with-SHA1",我该怎么办?我在这个过程中遗漏了什么吗?我试图在第二个命令中使用-sha384
openssl req -new -key ec_client_key.pem -out ec_clientReq.pem -sha384
但我得到了与签名算法相同的结果
Run Code Online (Sandbox Code Playgroud)Signature Algorithm: ecdsa-with-SHA1 30:65:02:30:4e:b4:b6:5f:3a:fc:b7:28:e5:4b:f0:3d:9a:ea: 4a:ba:ce:a4:f1:a6:e8:cd:15:19:23:a6:81:3f:24:01:d7:81: 3c:9d:9a:4c:cd:4b:4a:12:6d:69:48:ec:7e:73:7d:73:02:31: 00:d7:a5:63:9b:21:b2:95:ce:7f:13:3f:c5:1a:ac:99:01:ff: ba:9c:59:93:d5:ee:97:03:b5:9e:c1:7d:03:f8:72:90:65:b5: 08:7c:79:ae:ea:4f:6e:b0:2b:55:1a:11:a5
另一个问题涉及签名的格式.在上面的例子中,一个是102字节长,第二个是103字节长.似乎第一个字节是包含类型,长度的标题,可能还有其他一些内容,如填充.但我找不到一个确切的定义.有些人可以对此有所了解吗?谢谢
Apple忠实于其极其专有的精神,需要使用mac生成用于iOS开发人员程序的证书.(作为.certSigningRequest文件)
显然,他们以某种方式使用这些键的标准,所以我的问题是:.certSigningRequest是什么样的?有人可以分享他们文件的谴责版本吗?(同时保持相同的长度)
然后,我确信我们可以找到一种方法来生成与openssl相同的东西,并最终编辑csr文件,使其匹配apple所需的格式.
谢谢.
我删除了所有证书和私钥,因为我想完全全新安装.现在我无法创建CSR因为我收到错误
输入的用户名或密码不正确
我做过的步骤:
然后出现错误:
输入的用户名或密码不正确
我注意到OpenSSL和certreq生成PKCS10 CSR的方式有细微的差别:
OpenSSL:
-----BEGIN CERTIFICATE REQUEST-----
Run Code Online (Sandbox Code Playgroud)微软certreq:
-----BEGIN NEW CERTIFICATE REQUEST-----
Run Code Online (Sandbox Code Playgroud)(以及相同的页脚,但END除外)
该PKCS10规范并没有对这些页眉/页脚的任何信息,所以我怀疑他们是不是规范的一部分。我希望能够处理尽可能多的CSR格式,因此:
CSR的“ BEGIN”标头有规范吗?
另外:是否存在其他形式的CSR标头?不是opensl或certreq的CSR生成工具使用什么?
如何在C中实现它?
openssl req -new -key cert.key -out cert.csr
openssl x509 -req -in cert.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out cert.crt -days 5000
Run Code Online (Sandbox Code Playgroud) 在使用 OpenSSL 命令行工具创建自签名证书期间,我遇到错误
首先我创建了一个私钥
openssl genrsa -out MyKey1.key 2048
创建 CSR 时出现错误
openssl req -new -out MyCert1.req -key MyKey1.key -subj /CN=Description of the Server
错误是
problem creating object tsa-policy1=1.2.3.4.1
5364:error:08064066:object identifier routines:OBJ_create:pid exists:crypto\objects\obj_dat.c:689:
有什么我在这里想念的吗?
目前,我的项目有两部分,一是登录前,一是登录后。
我想要实现的是,在登录之前需要快速和SEO友好,我应该选择预渲染还是SSR?
登录后,我们可以选择CSR(这样客户端就可以等待页面加载了)。
或者,我可以做两个 CSR,一个用于登录前(快速加载),客户端登录后,通过 JWT 令牌重定向到登录后 CSR 页面?
谢谢