如何从 Godaddy 证书导出私钥并与 Apache SSL 一起使用

Posted

技术标签:

【中文标题】如何从 Godaddy 证书导出私钥并与 Apache SSL 一起使用【英文标题】:how to export private key from Godaddy certificate and use with Apache SSL 【发布时间】:2012-01-14 07:30:10 【问题描述】:

我购买了 Godaddy 证书,我在我的 Mac 服务器上正确安装了它,所以现在我在 Keychain Application 中看到 2 个条目:

Go Daddy 保护证书颁发机构 我的域名 mydomain(私钥)

然后我将证书(mydomain.com)添加到 httpd.conf 文件的 VirtualHost 中,所以:

<VirtualHost *:443>
     DocumentRoot "/Library/ApacheTomcat/apache-tomcat-6.0.33/webapps/MyServerAppName"
     ServerName mydomain.com
     ErrorLog "/private/var/log/apache2/mydomain.com-error_log"
     CustomLog "/private/var/log/apache2/mydomain.com-access_log" common
     SSLCertificateFile /etc/apache2/mydomain.cer
     JkMountCopy On
     JkMount /* ajp13
</VirtualHost>

那么,我想,我还需要私钥文件,否则 Apache 无法处理证书。 这个怎么做?我可以将 Apple Keychain 中的证书保存到 .pem 和 .cer 文件中。

【问题讨论】:

更适合ServerFault。 【参考方案1】:

在钥匙串中,以 PKCS#12 格式(.p12 文件,个人信息交换)导出您的私钥和证书。您应该能够通过扩展您的私钥条目(在钥匙串访问中)、右键单击其证书并使用导出来执行此操作。它可能会要求您输入密码来保护此 p12 文件。

然后,在终端中,使用 OpenSSL 提取私钥:

 umask 0077
 openssl pkcs12 -in filename.p12 -nocerts -nodes -out filename-key.pem
 umask 0022
请注意,您应该保护此文件,因为私钥将不受密码保护(以便 Apache Httpd 可以使用它)。

同样,对于证书(虽然您可能已经拥有 PEM 格式的证书,因此您可能不需要此步骤):

 openssl pkcs12 -in filename.p12 -clcerts -nokeys -out filename-cert.pem

然后,设置 SSLCertificateFile (cert) and SSLCertificateKeyFile (private key) 选项以指向您的 Apache Httpd 配置中的这些文件。

【讨论】:

【参考方案2】:

我遇到了同样的问题,我用这些命令导出私钥

umask 0077
openssl pkcs12 -in filename.p12 -nocerts -nodes -out filename-key.pem
umask 0022

这些用于导出证书

openssl pkcs12 -in filename.p12 -clcerts -nokeys -out filename-cert.pem

【讨论】:

以上是关于如何从 Godaddy 证书导出私钥并与 Apache SSL 一起使用的主要内容,如果未能解决你的问题,请参考以下文章

将 GoDaddy 颁发的 .spc 和 .key 文件加入完整的 .pfx / .cer 证书

Java Keytools 证书转换成Openssl 的PEM 文件或keytools 导出私钥文件

使用 Godaddy 颁发的证书时“公钥证书和私钥不匹配”[关闭]

加密RSA私钥并使用Crypto ++将其写入文件

上传 APNS 证书 Firebase 的问题

如何从 .SPC(代码签名证书)和 .PKCS12(私钥)生成 PKCS12 (.p12)?