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