我正在尝试在我的网络服务器上为 https 设置 SSL。我到现在似乎只缺少我的私钥。我最初遵循了本指南https://buddycloud.org/wiki/Quickly_create_valid_SSL_certificates,无法生成 pkcs12 或 pem 文件。现在我找到了一种不使用 pkcs12 和 pem 文件的方法,但它需要我的私钥 - 我不知道在哪里或如何获取/生成私钥?
我的网络服务器是运行带有 apache2 和 vhosts 的 gentoo 的 linode。
摘自我的 apache2 error_log:
[Thu Jan 10 18:18:39 2013] [error] Init: Private key not found
[Thu Jan 10 18:18:39 2013] [error] SSL Library Error: 218529960 error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag
[Thu Jan 10 18:18:39 2013] [error] SSL Library Error: 218640442 error:0D08303A:asn1 encoding routines:ASN1_TEMPLATE_NOEXP_D2I:nested asn1 error
[Thu Jan 10 18:18:39 2013] [error] SSL Library Error: 218529960 error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag
[Thu Jan 10 18:18:39 2013] [error] SSL Library Error: 218595386 error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error
[Thu Jan 10 18:18:39 2013] [error] SSL Library Error: 67710980 error:04093004:rsa routines:OLD_RSA_PRIV_DECODE:RSA lib
[Thu Jan 10 18:18:39 2013] [error] SSL Library Error: 218529960 error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag
[Thu Jan 10 18:18:39 2013] [error] SSL Library Error: 218595386 error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error
答案1
该指南建议将密钥放入密钥库中。您应该能够使用以下命令查看现有密钥:
keytool -keystore ~/.keystore -list
要导出它,Sec.SE 有答案。
密钥管理非常重要。如果您不知道密钥的所有副本在哪里,您的 SSL 安全性就会受到损害。如果其他人拥有您的密钥,他们可以解密使用由此生成的证书的所有 SSL 通信。
SSL 工作需要私钥,并且没有实际的方法可以从证书(.crt
)或证书签名请求(.csr
)重新生成密钥。
如果找不到密钥,则应创建一个新密钥并重试该过程。您也可以使用不使用keytool
而只是复制文件的不同指南来实现相同的目标。大多数指南最终都会有两个或三个文件,一个.crt
,一个.key
和一个可选的链证书。您可能还需要 Apache 调用的第四个文件SSLCACertificateFile
。您将要如果您使用 StartSSL,则需要此文件。