1

我正在尝试使用 openSSL 为我的应用程序设置 https 连接。我正在运行一个 Neo4j 1.2.2 数据库,一个 Trinidad 1.3.5 Web 服务器,使用 Rails 3.1 和 ruby​​ 1.9。

我有一个 Thawte 试用证书 ca_cert.crt,它们的中间证书和根证书分别为 ca_intermediate.crt 和 ca_root.crt,以及我自己的私钥 ca_private.pem。我需要运行什么 openssl 命令来创建密钥库,我可以在我的应用程序的 trinidad.yaml 配置文件中指定它?

到目前为止,我尝试过的“看起来最接近正确”的事情是:

pkcs12 –export –in ca_cert.crt inkey ca_private.pem –out keystore.p12 –name tomcat

它给了我错误:

unable to load certificates
6380:error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag:.\crypto\as
n1\tasn_dec.c:1319:
6380:error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error:.\
crypto\asn1\tasn_dec.c:381:Type=X509_CINF
6380:error:0D08303A:asn1 encoding routines:ASN1_TEMPLATE_NOEXP_D2I:nested asn1 e
rror:.\crypto\asn1\tasn_dec.c:751:Field=cert_info, Type=X509
6380:error:0907400D:PEM routines:PEM_X509_INFO_read_bio:ASN1 lib:.\crypto\pem\pe
m_info.c:258:
error in pkcs12

在我看来,openssl 不喜欢我保存文件的格式,尽管我尝试了几乎所有我能想到的 .pem、.crt、.cer 和 .key 扩展名的组合都无济于事。我完全是 SSL 新手,所以我希望我只是在做一些愚蠢的事情,而且它很容易解决......

这是我一直在尝试遵循的示例:https ://github.com/trinidad/trinidad/wiki/ssl-end-to-end-example

4

1 回答 1

0

这个答案看来,Thawte 证书的格式为 PKCS#7,而openssl pkcs12 -export命令需要 PEM。PKCS#7 中的证书可以使用先前链接答案的命令的修改版本进行转换。

$ openssl pkcs7 -in ca_cert.crt -print_certs | openssl x509 -outform PEM > ca_cert.pem

然后执行您提供的命令,创建 PKCS#12 密钥库。

$ openssl pkcs12 –export –in ca_cert.pem -inkey ca_private.pem –out keystore.p12 –name tomcat
于 2012-07-18T12:57:16.317 回答