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

时间:2011-12-06 17:40:23

标签: apache ssl certificate virtualhost

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

  • Go Daddy Secure Certification Authority
  • MYDOMAIN
    • 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文件中。

2 个答案:

答案 0 :(得分:8)

在Keychain中,以PKCS#12格式(.p12文件,个人信息交换)导出您的私钥和证书。您应该可以通过扩展私钥条目(在Keychain Access中),右键单击其证书并使用Export来完成此操作。它可能会要求您输入密码来保护这个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配置中的这些文件。

答案 1 :(得分:0)

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

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