Interstage証明書環境からInterstage HTTP Server 2.4(Apache HTTP Server 2.4ベース)への証明書の移行方法について説明します。
■Interstage証明書環境からPKC2#12データの移出
移行のためにInterstage証明書環境からPKCS#12データの移出(取り出し)を行います。
移出にはscsexppfxコマンドを使用します。サイト証明書とそれに対応する秘密鍵と、サイト証明書の検証に必要な認証局証明書を、PKCS#12データで移出することができます。作成されたPKCS#12データはパスワードで暗号化されているため、秘密鍵を安全に取り出すことができます。
■SMEEコマンドで構築した証明書/鍵管理環境からPKC2#12データの移出
移行のためにSMEEコマンドで構築した証明書/鍵管理環境からPKCS#12 (PFX)データの移出(取り出し)を行います。
既存の資源(秘密鍵、証明書)を取り出す
資源の取り出しは、PKCS#12(PFX)データ作成コマンドで行います。
# cmmkpfx /export/home/my_site_pfx.pfx -ed /export/home/sslcert -sn 1 -nn MySiteCert
PKCS#12(PFX)データ作成時には、「サイト証明書」のニックネームを指定してください。PKCS#12(PFX)データ作成コマンドは、サイト証明書、その秘密キー、サイト証明書の認証局の証明書(ルートCA証明書までの一式)を取り出し、PKCS#12(PFX)データを作成します。
■Interstage証明書環境からの移行
Interstage証明書環境から移出したPKCS#12データから、以下の手順で「秘密鍵」と「サイト証明書」のファイルを作成します。
PKCS#12データから、「秘密鍵」を取り出します。
# /opt/FJSVahs/oss/openssl/bin/openssl pkcs12 -in <PKCS#12ファイル名> -nocerts -out /export/home/ahs/sslcert/<秘密鍵ファイル名>
PKCS#12データから、「サイト証明書」を取り出します。
# /opt/FJSVahs/oss/openssl/bin/openssl pkcs12 -in <PKCS#12ファイル名> -clcerts -nokeys -out /export/home/ahs/sslcert/cert/<サイト証明書ファイル名>
PKCS#12データから、「認証局の証明書」を取り出します。
# /opt/FJSVahs/oss/openssl/bin/openssl pkcs12 -in <PKCS#12ファイル名> -cacerts -nokeys -out /export/home/ahs/sslcert/cert/<認証局の証明書ファイル名>
PKCS#12データによっては、「認証局の証明書」に、「ルートCA証明書」のほかに「中間CA証明書」が1つまたは複数含まれる場合があり、その場合は、先頭から「ルートCA証明書」、「中間CA証明書」の順に並んでいます。
以下に、「ルートCA証明書」と「中間CA証明書」を含む場合と、「ルートCA証明書」のみの場合の「認証局の証明書」の例を示します。
認証局の証明書ファイル(「ルートCA証明書」と2つの「中間CA証明書」を含む場合)
Bag Attributes friendlyName: subject=・・・ issuer=・・・ -----BEGIN CERTIFICATE----- … (ルートCA証明書データ) … -----END CERTIFICATE----- Bag Attributes friendlyName: subject=・・・ issuer=・・・ -----BEGIN CERTIFICATE----- … (中間CA証明書1データ) … -----END CERTIFICATE----- Bag Attributes friendlyName: subject=・・・ issuer=・・・ -----BEGIN CERTIFICATE----- … (中間CA証明書2データ) … -----END CERTIFICATE-----
認証局の証明書ファイル(「ルートCA証明書」のみの場合)
Bag Attributes friendlyName: subject=・・・ issuer=・・・ -----BEGIN CERTIFICATE----- … (ルートCA証明書データ) … -----END CERTIFICATE-----
ポイント
1.から3.で取り出したデータは、テキストファイルです。
3.で取り出した「認証局の証明書」を、「ルートCA証明書」と「中間CA証明書」のファイルに分割します。
取り出した「認証局の証明書」に含まれる証明書が1つ(「ルートCA証明書」)のみの場合は、この手順は不要です。6.に進みます。
以下に、「認証局の証明書」に「中間CA証明書」が2つ含まれる場合を例に記載します。
テキストエディタなどを使用して、取り出した「認証局の証明書」を、「ルートCA証明書」「中間CA証明書1」「中間CA証明書2」の各ファイルに分割します。「-----END CERTIFICATE-----」までを分割します。
ルートCA証明書のファイル
Bag Attributes friendlyName: subject=・・・ issuer=・・・ -----BEGIN CERTIFICATE----- … (ルートCA証明書データ) … -----END CERTIFICATE-----
中間CA証明書1のファイル
Bag Attributes friendlyName: subject=・・・ issuer=・・・ -----BEGIN CERTIFICATE----- … (中間CA証明書1データ) … -----END CERTIFICATE-----
中間CA証明書2のファイル
Bag Attributes friendlyName: subject=・・・ issuer=・・・ -----BEGIN CERTIFICATE----- … (中間CA証明書2データ) … -----END CERTIFICATE-----
4.で分割した中間CA証明書のファイルを「サイト証明書」のファイルに、「中間CA証明書2」、「中間CA証明書1」の順でマージします。
# cat <中間CA証明書2ファイル名> >> /export/home/ahs/sslcert/cert/<サイト証明書ファイル名> # cat <中間CA証明書1ファイル名> >> /export/home/ahs/sslcert/cert/<サイト証明書ファイル名>
「ルートCA証明書」を「サイト証明書」にマージします。
「認証局の証明書」に「中間CA証明書」が含まれる場合
4.で分割した「ルートCA証明書」のファイルを「サイト証明書」のファイルにマージします。
# cat <ルートCA証明書ファイル名> >> /export/home/ahs/sslcert/cert/<サイト証明書ファイル名>
「認証局の証明書」に含まれる証明書が1つ(「ルートCA証明書」)のみの場合
3.で取り出した「認証局の証明書」のファイルを「サイト証明書」のファイルにマージします。
# cat <認証局の証明書ファイル名> >> /export/home/ahs/sslcert/cert/<サイト証明書ファイル名>
出力したファイルはhttpd.confの以下のディレクティブに設定してください。詳細は“A.1 SSLの設定”を確認してください。
例
# サイトの秘密鍵ファイル SSLCertificateKeyFile /export/home/ahs/sslcert/<秘密鍵ファイル名> # サイト証明書ファイル SSLCertificateFile /export/home/ahs/sslcert/cert/<サイト証明書ファイル名>
■証明書/鍵環境からの移行
移行のためにSMEE証明書/鍵環境からPKCS#12データで移出(取り出し)を行います。PKCS#12データの移出(取り出し)方法は“■SMEEコマンドで構築した証明書/鍵管理環境からPKC2#12データの移出”を確認してください。
SMEE証明書/鍵環境から移出したPKCS#12データから「秘密鍵」と「サイト証明書」のファイルを作成します。
ファイルの作成手順については“■Interstage証明書環境からの移行”を参照してください。