Memo

メモ > サーバ > 構築: Webサーバ設定 > Apache+SSL(有料証明書を更新する場合)

Apache+SSL(有料証明書を更新する場合)
※秘密鍵は同じものを使えるが、毎回違うものを使うほうがセキュリティ上好ましい ※万が一問題が発生しても戻せるように、以前の秘密鍵や証明書は削除せずに置いておく CSRについて教えてください。 https://jp.globalsign.com/support/faq/65.html ■秘密鍵の生成
# cd /etc/httpd/conf/ … ディレクトリ移動 # openssl genrsa -des3 -out ssl.key/refirio.net.20160130.key 2048 … 秘密鍵を生成 Generating RSA private key, 2048 bit long modulus ....+++ ......+++ e is 65537 (0x10001) Enter pass phrase for ssl.key/refirio.net.20160130.key: … 任意のパスワードを設定(表示はされない) Verifying - Enter pass phrase for ssl.key/refirio.net.20160130.key: … 任意のパスワードを確認(表示はされない)
■CSRの生成 ※新規導入の時と同じ内容でいい
# openssl req -new -key ssl.key/refirio.net.20160130.key -out ssl.csr/refirio.net.20160130.csr … CSRを生成 Enter pass phrase for ssl.key/refirio.net.20160130.key: … 上で設定したパスワードを入力(表示はされない) You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [XX]:JP … 国名を設定 State or Province Name (full name) []:Osaka … 都道府県名を設定 Locality Name (eg, city) [Default City]:Osaka … 市区町村名を設定 Organization Name (eg, company) [Default Company Ltd]:refirio.net … 組織名を設定(なんでもいい) Organizational Unit Name (eg, section) []: … 空Enter(もしくは部署名を設定) Common Name (eg, your name or your server's hostname) []:refirio.net … コモンネーム(Webサーバー名)を設定。SSL購入時に申請するものと一致させる Email Address []:refirio@example.com … 管理者メールアドレスを設定 Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: … 空Enter An optional company name []: … 空Enter
■秘密鍵からパスワードを削除
# openssl rsa -in ssl.key/refirio.net.20160130.key -out ssl.key/refirio.net.20160130.key … サーバ用秘密鍵からパスワード削除(Webサーバ起動時にパスワードを要求されないように) Enter pass phrase for refirio.net.20160130.key: … サーバ用秘密鍵・証明書作成時のパスワードを入力(表示はされない) writing RSA key # vi .ssl.csr/refirio.net.20160130.csr … CSRの内容を確認
-----BEGIN CERTIFICATE REQUEST----- MIICxjCCAa4CAQAwgYAxCzAJBgNVBAYTAkpQMQ4wDAYDVQQIDAVPc2FrYTEVMBMG 〜省略〜 bzhh/X0SHFCYaHAHIJYLUx2Ii3265wENEwdsteXVps8zTyuKw6jZaq/1 -----END CERTIFICATE REQUEST-----
■証明書申し込み(ドメインキーパーでメール認証の例) 新規に購入してもいいが、更新した方が得かも。手続きもスムーズ 以下はドメインキーパーで更新したときの手順メモ ドメインキーパー https://www.domain-keeper.net/usr/ssl/ にログイン →「ご利用中の証明書一覧」をクリック →対象の「更新」をクリック →更新手続き内容を確認して「更新手続きに進む」をクリック →取得年数などを確認して「次へ進む」をクリック →オプションサービスを確認して「次へ進む」をクリック →CSRを入力して「次へ進む」をクリック →CSRの内容を確認して「次へ進む」をクリック →認証方法で「メール認証」の「refirio@example.com」を選択して「次へ進む」をクリック →申請情報を確認して「次へ進む」をクリック →申し込み内容を確認して「次へ進む」をクリック →引き続き決済を行う ■証明書申し込み(グローバルサインでページ認証の例) 新規に購入してもいいが、更新した方が得かも。手続きもスムーズ 以下はドメインキーパーで更新したときの手順メモ グローバルサイン https://system.globalsign.com/loginpartner/loginpartner.do にログイン →「現在更新可能な証明書」をクリック →対象の「更新」をクリック →サービス内容を選択して「次へ」をクリック →技術担当者情報を入力して「次へ」をクリック →CSRを入力して「次へ」をクリック →CSR内容を確認して「次へ」をクリック →認証方法で「ページ認証」を選択して「次へ」をクリック →支払い方法で「クレジットカード」を選択して「次へ」をクリック →申込内容を確認して「完了する」をクリック 以下のように表示されているので、該当サーバにファイルを設置する
オーダーIDは、CEDO123456789012です。 GSパネルにログイン後、「証明書一覧」より現在のステータス等、詳細な情報をご確認いただけます。 <meta name="_globalsign-domain-verification" content="XXXXXXXXXXXXXXXXXXXXXXX-YY_ZZZZZZZZZZZZZZZ" /> 上記、ドメイン審査コードを、下記のページのgsdv.txtにテキストファイルとして設置してください。 yourdomain.com/.well-known/pki-validation/gsdv.txt
→「グローバルサイン/承認手続きのお知らせ」というメールが送られてくるはずなので、メールの案内に従って該当ページにアクセスし、承認手続きを行う もしくはGlobalSignで 「証明書一覧 → 編集 → メール送信一覧」 から、送信されたメールを確認できる(承認リンクや証明書なども確認できる) ■証明書インストール ※AWSでロードバランサに証明書を設定する場合の手順は aws.txt を参照
# vi /etc/httpd/conf/ssl.crt/refirio.net.20160130.crt … 証明書用のファイルを作成
-----BEGIN CERTIFICATE----- … 証明書の内容を全てコピーして貼り付ける MIIE4DCCA8igAwIBAgISESFyQfmhMxTM6H2txGeH/YImMA0GCSqGSI 〜略〜 TlmDVg== -----END CERTIFICATE-----
# vi /etc/httpd/conf/ssl.crt/refirio.net.20160130.ca … 中間証明書用のファイルを作成
-----BEGIN CERTIFICATE----- … 中間証明書の内容を全てコピーして貼り付ける MIIEYzCCA0ugAwIBAgILBAAAAAABRE7wPiAwDQYJKoZIhvcNAQELBQ 〜略〜 EjxS1QSCVS1npd+3lXzuP8MIugS+wEY= -----END CERTIFICATE-----
# vi /etc/httpd/conf.d/ssl.conf … ApacheSSL設定ファイル編集(バーチャルホストを指定していない場合) # vi /etc/httpd/conf.d/virtualhost.conf … バーチャルホスト設定ファイル編集(バーチャルホストを指定している場合)
#SSLCertificateFile /etc/httpd/conf/ssl.crt/refirio.net.crt #SSLCertificateKeyFile /etc/httpd/conf/ssl.key/refirio.net.key #SSLCertificateChainFile /etc/httpd/conf/ssl.crt/refirio.net.ca SSLCertificateFile /etc/httpd/conf/ssl.crt/refirio.net.20160130.crt … 証明書用の設定を編集 SSLCertificateKeyFile /etc/httpd/conf/ssl.key/refirio.net.20160130.key … 秘密鍵用の設定を編集 SSLCertificateChainFile /etc/httpd/conf/ssl.crt/refirio.net.20160130.ca … 中間証明書用の設定を追加
※万が一問題が発生しても戻せるように、削除ではなくコメントアウトにする
# systemctl stop httpd … Apacheを停止(restartでは正常に読み込まれないことがある) # systemctl start httpd … Apacheを起動
■確認 念のため、再度opensslコマンドやhttpsアクセスでテストし、HTTP接続やSSL接続に問題がないか確認する
# openssl s_client -connect refirio.net:443 -showcerts … SSLが正しく設定されているか確認 CONNECTED(00000003) depth=2 C = BE, O = GlobalSign nv-sa, OU = Root CA, CN = GlobalSign Root CA … CN(この場合はGlobalSign)を確認 verify return:1 depth=1 C = BE, O = GlobalSign nv-sa, CN = GlobalSign Domain Validation CA - SHA256 - G2 verify return:1 depth=0 OU = Domain Control Validated, CN = refirio.net verify return:1 〜以下略〜
サーバに https:// でアクセスして、SSL接続に問題がないか確認する
# systemctl restart httpd … Apacheを再起動して、パスワードを要求されないことを確認

Advertisement