以前、当サイトをHTTPからHTTPSへ移行する手順(さくらVPSのUbuntuでWordPressをHTTPからHTTPSへ移行する手順)をご紹介させていただきました。
今回は、このとき設定したラピッドSSLの期限を更新する手順をご紹介させていただきます。
環境
今回の更新対象となるUbuntuの環境は次になります。
cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=18.04
DISTRIB_CODENAME=bionic
DISTRIB_DESCRIPTION="Ubuntu 18.04.4 LTS"
apacheのバージョンは次になります。
apache2 -v
Server version: Apache/2.4.29 (Ubuntu)
Server built: 2020-03-13T12:26:16
秘密鍵と証明書署名要求(CSR)の作成
期限の更新は前回の秘密鍵と証明書署名要求(CSR)を再利用することもできます。
しかし、セキュリティのことを考えて新たに秘密鍵と証明書署名要求(CSR)を作成し設定することにします。
秘密鍵はopensslコマンドを用いて作成します。
このとき、パスフレーズを要求されますので、4文字以上の文字列を入力します。
openssl genrsa -des3 -out www.trifields.jp.key 2048
Generating RSA private key, 2048 bit long modulus (2 primes)
...........+++++
................................................................+++++
e is 65537 (0x010001)
Enter pass phrase for www.trifields.jp.key:
Verifying - Enter pass phrase for www.trifields.jp.key:
このパスフレーズはWebサーバの再起動に入力を求められたりするため、必ず控えておくことをお勧めします。
しかし、Webサーバの再起動ごとにパスフレーズを入力することは大変です。
この解決方法は主に次の2つあります。
- 入力を求められたときに、パスフレーズを記したファイルを実行し自動入力させる
- パスフレーズを取り除く
ここでは、パスフレーズを取り除く方法を採用します。
次のコマンドによりパスフレーズを取り除いた秘密鍵を作成します。
このとき、パスフレーズの入力を求められますので、上記で設定したパスフレーズを入力してください。
openssl rsa -in www.trifields.jp.key -out www.trifields.jp.key.insecure
Enter pass phrase for www.trifields.jp.key:
writing RSA key
ファイル名を整理します。
mv www.trifields.jp.key www.trifields.jp.key.secure
cp www.trifields.jp.key.insecure www.trifields.jp.key
次に、パスフレーズを取り除いた秘密鍵から証明書署名要求を作成します。
次のコマンドにより、秘密鍵から証明書署名要求を作成します。
openssl req -sha256 -new -key www.trifields.jp.key -out www.trifields.jp.csr
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) [AU]:JP # 国名
State or Province Name (full name) [Some-State]:Ishikawa # 都道府県
Locality Name (eg, city) []:Kanazawa-shi # 市区町村
Organization Name (eg, company) [Internet Widgits Pty Ltd]:trifields # 組織名
Organizational Unit Name (eg, section) []: # 組織単位名
Common Name (e.g. server FQDN or YOUR name) []:www.trifields.jp # FQDN: ここ以外は省略可
Email Address []: # メールアドレス
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: # 空欄
An optional company name []: # 空欄
さくらのラピッドSSLに申し込み
SSLサーバ証明書お申し込み|さくらインターネットから申し込みます。
ログイン画面へ進むボタンをクリックし、ログインを行います。
SSLサーバ証明書お申し込み画面が表示されます。
「お申込み種別」と「お申し込みプラン」、「支払方法」を選択および入力します。
「お申込み種別」が更新の場合は、どのプランを更新するのかを選択します。
「約款のご確認」に目を通して同意するにチェックします。
再度、全体を確認した後に「CSRの入力へ進む」をクリックします。
左側のテキストボックスに、事前に作成したおいた証明書署名要求の内容を貼り付けます。
具体的には、サーバ上で証明書署名要求をvimで開き、ターミナルからコピーして貼り付けます。
成功すると、証明書署名要求の作成時に入力したコモンネームなどが右側に表示されます。
ここで、表示された証明書署名要求をしっかり確認しておきます。
不備が見つかった場合は、再度、証明書署名要求を作成し、左側のテキストボックスに貼り付けます。
問題が無ければ、「確認画面へ進む」をクリックします。
内容をしっかりと確認します。問題が無ければ、ラピッドSSLを申し込みます。
申込完了が表示されます。
認証ファイルのアップロード
申し込みが完了すると、「お申込み受付完了のお知らせ」メールが届きます。
その後しばらくして、「[さくらインターネット]SSLサーバ証明書 認証ファイルのアップロードのお願い」メールが届きます。
私の場合は、約20分でこのメールが届きました。
このメールにドメインの使用権の確認のための手順が記載されています。
会員メニュー|さくらインターネットからログインして、「サーバ、SSL等サービスの確認」をクリックします。
新たに更新したサービスの「サーバ証明書」をクリックします。
ページが遷移して、「認証ファイルDL」をクリックして認証ファイルをダウンロードします。
認証ファイルのダウンロード後から認証までの手順については、省略させていただきます。
詳しい内容は、「[さくらインターネット]SSLサーバ証明書 認証ファイルのアップロードのお願い」に記載されています。
手順は、詳しく記載されているため、難しいところはありませんでした。
認証局は自動的に認証ファイルのクローリングを行っているため、しばらく待ちます。
私の場合は、約20分で「[さくらインターネット]ジオトラスト SSLサーバ証明書発行のお知らせ」が届き、証明書が発行されました。
証明書の発行が完了しましたら、認証ファイルは不要ですので、忘れずに削除しておきます。
SSLサーバ証明書のダウンロードおよびサーバへのアップロード
認証が完了したら、さくらインターネットの会員メニュー「サーバ、SSL等サービスの確認」から、発行された証明書をダウンロードします。
ダウンロードした証明書をサーバにアップロードします。
ここでは、上記の秘密鍵と証明書署名要求(CSR)の作成したディレクトリに保存しておきます。
その後、証明書のファイル名を変更しておきます。
mv server.crt www.trifields.jp.crt
証明書の設置
秘密鍵や証明書の権限や所有、グループを変更して/etc/ssl内に設置します。
今回は更新のため、前回のファイル名と同様としました。
sudo chmod 600 www.trifields.jp.key
sudo chmod 600 www.trifields.jp.crt
sudo chown root:root www.trifields.jp.key
sudo chown root:root www.trifields.jp.crt
sudo mv www.trifields.jp.key /etc/ssl/private
sudo mv www.trifields.jp.crt /etc/ssl/certs
前回のファイル名と同様にしたため、apacheの設定は変更する必要がありません。
apacheの再起動をしておきます。
sudo service apache2 restart
ここで、ブラウザからhttps://で接続できるかを確認します。
また、ブラウザのアドレスバーの横にある鍵マークから、有効期間が延長していることを確認します。