首页 文章

如何在Linux服务器上转换PFX证书文件以用于Apache?

提问于
浏览
102

如何在Linux服务器上转换PFX证书文件以用于Apache?

我从Windows证书服务创建了PFX . PFX包含整个证书链 . (这只是一个根和主要证书,没有中间人 . )

带领我,聪明的人 .

5 回答

  • 3

    使用OpenSSL,您可以使用下一个命令将pfx转换为Apache兼容格式:

    openssl pkcs12 -in domain.pfx -clcerts -nokeys -out domain.cer
    openssl pkcs12 -in domain.pfx -nocerts -nodes  -out domain.key
    

    第一个命令将公钥提取到 domain.cer .
    第二个命令将私钥提取到 domain.key .

    使用以下命令更新Apache配置文件:

    <VirtualHost 192.168.0.1:443>
     ...
     SSLEngine on
     SSLCertificateFile /path/to/domain.cer
     SSLCertificateKeyFile /path/to/domain.key
     ...
    </VirtualHost>
    
  • 31

    另外

    openssl pkcs12 -in domain.pfx -clcerts -nokeys -out domain.cer
    openssl pkcs12 -in domain.pfx -nocerts -nodes  -out domain.key
    

    我还生成了证书颁发机构(CA)证书:

    openssl pkcs12 -in domain.pfx -out domain-ca.crt -nodes -nokeys -cacerts
    

    并将其包含在Apache配置文件中:

    <VirtualHost 192.168.0.1:443>
     ...
     SSLEngine on
     SSLCertificateFile /path/to/domain.cer
     SSLCertificateKeyFile /path/to/domain.key
     SSLCACertificateFile /path/to/domain-ca.crt
     ...
    </VirtualHost>
    
  • 186

    为了使它与Apache一起工作,我们需要一个额外的步骤 .

    openssl pkcs12 -in domain.pfx -clcerts -nokeys -out domain.cer
    openssl pkcs12 -in domain.pfx -nocerts -nodes  -out domain_encrypted.key
    openssl rsa -in domain_encrypted.key -out domain.key
    

    最后一个命令解密密钥以便与Apache一起使用 . domain.key文件应如下所示:

    -----BEGIN RSA PRIVATE KEY-----
    MjQxODIwNTFaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3d3d3
    LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxp
    YWIuKTElMCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEG
    A1UEAxMqRW50cnVzdC5uZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgp
    MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArU1LqRKGsuqjIAcVFmQq
    -----END RSA PRIVATE KEY-----
    
  • 0

    采取了一些工具,但这是我最终得到的 .

    在IIS7上生成并安装了证书 . 从IIS导出为PFX

    转换为pkcs12

    openssl pkcs12 -in certificate.pfx -out certificate.cer -nodes
    

    注意:在将PFX转换为PEM格式时,openssl会将所有证书和私钥放入单个文件中 . 您需要在文本编辑器中打开该文件,并将每个证书和私钥(包括BEGIN / END语句)复制到其各自的文本文件中,并将它们分别保存为certificate.cer,CAcert.cer,privateKey.key .

    -----BEGIN PRIVATE KEY-----
    Saved as certificate.key
    -----END PRIVATE KEY-----
    
    -----BEGIN CERTIFICATE-----
    Saved as certificate.crt
    -----END CERTIFICATE-----
    

    添加到带有Webmin的apache vhost .

  • 95

    SSLSHopper有一些关于在不同服务器之间移动的非常全面的文章 .

    http://www.sslshopper.com/how-to-move-or-copy-an-ssl-certificate-from-one-server-to-another.html

    只需选择本页底部的相关链接即可 .

    注意:他们有一个在线转换器,可以让他们访问您的私钥 . 它们可能是可信任的,但最好使用OPENSSL命令(也在此站点上显示)将私钥保密在您自己的计算机上 .

相关问题