Linuxサーバー上のApacheで使用するためにPFX証明書ファイルを変換するにはどうすればよいですか?
Windows証明書サービスからPFXを作成しました。 PFXには、証明書チェーン全体が含まれています。 (これは単なるルートであり、メイン証明書であり、中間証明書ではありません。)
賢い者を導いてください。
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
に抽出します。
2番目のコマンドは、秘密鍵をdomain.key
に抽出します。
Apache構成ファイルを次のように更新します。
<VirtualHost 192.168.0.1:443>
...
SSLEngine on
SSLCertificateFile /path/to/domain.cer
SSLCertificateKeyFile /path/to/domain.key
...
</VirtualHost>
に加えて
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>
Apacheで動作させるには、1つの追加ステップが必要でした。
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-----
いくつかのツールを試しましたが、これが私がやったことです。
IIS7で証明書を生成してインストールしました。 IISからPFXとしてエクスポート
Pkcs12に変換
openssl pkcs12 -in certificate.pfx -out certificate.cer -nodes
注:PFXをPEM形式に変換する際、opensslはすべての証明書と秘密鍵を1つのファイルに入れます。テキストエディターでファイルを開き、各証明書と秘密キー(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-----
Apache vhost w/Webminに追加されました。
SSLSHopperには、異なるサーバー間の移動に関するかなり徹底的な記事があります。
http://www.sslshopper.com/how-to-move-or-copy-an-ssl-certificate-from-one-server-to-another.html
このページの下部にある関連リンクを選択してください。
注:彼らはあなたの秘密鍵にアクセスできるオンラインコンバータを持っています。それらはおそらく信頼できますが、OPENSSLコマンド(このサイトにも表示)を使用して、自分のマシンで秘密鍵を秘密にしておく方が良いでしょう。