Openssl,我的私钥丢失或丢失

我正在尝试在我的web服务器上为https设置ssl。 我已经到了一个地步,似乎我所缺less的是我的私钥。 我最初遵循本指南https://buddycloud.org/wiki/Quickly_create_valid_SSL_certificates ,并且无法制作pkcs12或pem文件。 现在我已经find了一种不使用pkcs12和pem文件的方法,但它需要我的私钥 – 我不知道在哪里或如何获取/生成?

我的networking服务器是一个linode运行Gentoo与Apache2和虚拟主机。

摘自我的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 

该指南build议将您的密钥放在密钥库中。 您应该能够看到您的现有密钥:

 keytool -keystore ~/.keystore -list 

要导出它, Sec.SE有一个答案 。


密钥pipe理很重要。 如果您不知道密钥的所有副本在哪里,SSL的安全性会受到影响。 如果其他人拥有密钥,他们可以解密所有使用由其生成的证书的SSL通信。

私钥是SSL工作所必需的,并没有从证书( .crt )或证书签名请求( .csr )重新生成密钥的实际方法。

如果你找不到你的密钥,你应该创build一个新的密钥,并再次尝试该过程。 您也可以使用不使用keytool不同指南实现相同的目标,而只是复制文件。 大多数指南最终有两个或三个文件, .crt.key和可选的链式证书。 您可能还需要Apache调用SSLCACertificateFile的第四个文件。 如果您使用的是StartSSL,您需要此文件。