複数のサーバーがあり、ロードバランサー環境やワイルドカードSSL証明書を使用する場合など、同じSSL証明書を使用する必要がある場合は、サーバー間で証明書を転送する必要があります。 通常、サーバー間のSSL転送は、LinuxサーバーやWindowsサーバーなどの同じ種類のサーバー間で行うと簡単です。
しかし、WindowsからLinuxサーバーになると、プロセスは少し難しくなります。 この場合、SSL証明書をWindowsサーバーからエクスポートし、.pfxファイルに保存する必要があります。 その後、この.pfx(PKCS#12 /)ファイルをLinuxサーバーにコピーし、そのファイルを Apache-個々の証明書、CAバンドル、秘密鍵ファイルなどの互換性のあるファイル形式を使用します。
これは、ホスティング会社を切り替えるときにも必要になる場合があります。 この記事では、実行中のLinuxサーバー上でWindowsサーバーから.pfx証明書を正常に使用する方法について、ステップバイステップの手順で正確なプロセスを説明します。 Apache。
.pfxファイルと.crtファイルの違い
その前に、変換プロセスから始めて、.pfxファイルと.crtファイルの違いについて簡単に説明します。 基本的に、証明書(.crtファイル)は公開鍵のコンテナーです。 これには、公開鍵、サーバー名、サーバーに関する追加情報、および証明機関(CA)によって計算された署名が含まれます。 SSLハンドシェイク中に、サーバーは公開鍵をクライアントに送信します。クライアントには、実際には証明書が含まれており、他のいくつかの証明書チェーンも含まれています。
一方、.pfxファイルはバッグに似たPKCS#12アーカイブであり、オプションのパスワード保護を備えた多数のオブジェクトを含めることができます。 通常、PKCS#12アーカイブには、証明書(おそらく、さまざまなCA証明書のセットを含む)とそれに対応する秘密鍵が含まれています。
それでは、変換プロセスから始めましょう。
ステップ1:WindowsサーバーからLinuxサーバーにpfx証明書を転送する
まず、ドメインpuebe.comのWindowsサーバーから.pfx証明書に証明書をエクスポートしました。 そして、ローカルシステムからフォルダ「/ transfered_certificates /」にSCPを使用して、そのpfxファイルをLinuxサーバーにコピーしました。 FTP、SCP、wgetを使用するか、これらの方法のいずれかを使用して、pfx証明書をLinuxサーバーに転送できます。
# transfered_certificates]# ll
-rw-r--r-- 1 root root 5409 Oct 9 10:02 c667cafbf01ffd7310db952e50eaf2b2.pfx
ステップ2:OpenSSLを使用して.pfxファイルを変換する
次のステップは、ドメインpuebe.comのこの.pfx証明書から必要な証明書、キー、およびCAバンドルを抽出することです。 OpenSSLコマンドを使用して、pfxファイルからこれらの詳細を抽出できます。 このpfx証明書から必要な情報を抽出するコマンドを見てみましょう。
pfxファイルからの証明書の抽出
このコマンドを使用して、pfxファイルからドメインpuebe.comの証明書の詳細を抽出できます。
# openssl pkcs12 -in c667cafbf01ffd7310db952e50eaf2b2.pfx -clcerts -nokeys -out puebe.com.crt
Enter Import Password:
MAC verified OK
これにより、ドメイン証明書ファイルが提供されます。 puebe.com.crt
Linuxでサポートする互換性のある形式で。
pfxファイルからのキーファイルの抽出
このコマンドを使用して、pfxファイルからドメインpuebe.comのキーの詳細を抽出できます。
# openssl pkcs12 -in c667cafbf01ffd7310db952e50eaf2b2.pfx -nocerts -nodes -out puebe.com.key
Enter Import Password:
MAC verified OK
これにより、ドメインキーファイルが提供されます。 puebe.com.key
pfxファイルから証明書のチェーンを抽出する
このコマンドを使用して、pfxファイルから証明書の詳細のチェーンを抽出できます。
# openssl pkcs12 -in c667cafbf01ffd7310db952e50eaf2b2.pfx -out puebe.com-ca.crt -nodes -nokeys -cacerts
Enter Import Password:
MAC verified OK
これにより、ファイル内のドメインpuebe.comの証明書のチェーンが提供されます。 puebe.com-ca.crt
。
これらの抽出したファイルを「/ etc / pki / tls / certs /」の下のcertフォルダーにコピーしました。 必要に応じてこれを行うことができますが、そうでない場合は、フォルダパスを直接指定できます。 Apache これらのファイルを抽出した構成。
[root@li1005-45 certs]# ll puebe.com*
-rw-r--r-- 1 root root 3689 Oct 9 10:10 puebe.com-ca.crt
-rw-r--r-- 1 root root 1954 Oct 9 10:06 puebe.com.crt
-rw-r--r-- 1 root root 1828 Oct 9 10:07 puebe.com.key
ステップ3:ドメインSSL証明書をに割り当てる Apache
.pfxファイルを変換した後、新しく作成したファイルをにコピーする必要があります。 Apache サーバーと編集 Apache それらを使用するための構成ファイル。 /etc/httpd/conf.d/フォルダーの下にドメインの仮想ホストを作成してSSLを有効にし、必要に応じてこれらの抽出されたファイルを含めました。 以下の私の仮想ホストの詳細を参照してください。
[root@li1005-45 conf.d]# cat puebe_ssl.conf
<VirtualHost puebe.com:443>
DocumentRoot "/var/www/html/puebe.com/public_html/"
ServerName www.puebe.com:443
ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log
LogLevel warn
SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5:!SEED:!IDEA
SSLCertificateFile /etc/pki/tls/certs/puebe.com.crt
SSLCertificateKeyFile /etc/pki/tls/certs/puebe.com.key
SSLCertificateChainFile /etc/pki/tls/certs/puebe.com-ca.crt
#SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
<Files ~ ".(cgi|shtml|phtml|php3?)$">
SSLOptions +StdEnvVars
</Files>
<Directory "/var/www/cgi-bin">
SSLOptions +StdEnvVars
</Directory>
BrowserMatch "MSIE [2-5]"
nokeepalive ssl-unclean-shutdown
downgrade-1.0 force-response-1.0
# Per-Server Logging:
# The home of a custom SSL log file. Use this when you want a
# compact non-error SSL logfile on a virtual host basis.
CustomLog logs/ssl_request_log
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x "%r" %b"
</VirtualHost>
ファイルの名前とパスを変更して、証明書ファイルと一致させることができます。SSLCertificateFile
ドメイン名のプライマリ証明書ファイルである必要があります。SSLCertificateKeyFile
抽出されたキーファイルである必要があります。SSLCertificateChainFile
中間証明書チェーンファイルである必要があります。
必ず構成テストを実行し、再起動してください Apache これが終わったらサービス。
# apachectl configtest
Syntax OK
# service httpd restart
これで、利用可能なSSLチェッカーツールのいずれかを使用してドメインSSL証明書を確認できます。 または、URLを参照することもできます>>https://puebe.com/
。 リンクでSSLのインストールを確認しました
>> https://www.sslshopper.com/ssl-checker.html#hostname=puebe.com
これにより、WindowsサーバーからLinuxディストリビューションに証明書を簡単に転送できます。 この記事がお役に立てば幸いです。 これに関する貴重なコメントや提案を投稿してください。