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

pio*_*ojo 4 apache ssl certificate virtualhost

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

  • 去爸爸安全认证机构
  • 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>
Run Code Online (Sandbox Code Playgroud)

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

Bru*_*uno 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
Run Code Online (Sandbox Code Playgroud)
  • 请注意,您应该保护此文件,因为私钥不受密码保护(因此Apache Httpd可以使用它).

同样,对于证书(虽然看起来你可能已经有PEM格式,所以你可能不需要这个步骤):

 openssl pkcs12 -in filename.p12 -clcerts -nokeys -out filename-cert.pem
Run Code Online (Sandbox Code Playgroud)

然后,设置SSLCertificateFile(cert)和SSLCertificateKeyFile(私钥)选项以指向Apache Httpd配置中的这些文件.