まだだできなかったhttps接続。SSL証明書と中間証明書を結合してfullchain.pemを作る

常時SSLには中間証明書とSSL証明書の結合が必要

Let’sEncryptは無料だけど3ヶ月で更新が必用。無料でも安心

常時SSL接続にはSSL証明書と中間証明書、秘密鍵の3つのファイルが必用です。
有料のサービスもありますが、コスパ重視のおっさんは無料のサービスのLet’sEncryptで証明書を取得します。
しかし、その分手間も多いようで、3ヶ月で期限が切れてしまうのでこまめに更新が必用です。
vpsでサーバーを構築してLet’sEncryptの証明書を使用する場合、通常certbotというアプリケーションをインストールして、取ってきてもらうのですが、xserverはipv6の設定がないことからcertbotでは取得できません。VPSのコントロールパネルからDNSレコードを申請して取得します。
詳しい方法はLet’sEncryptでSSL証明書を取得するページを御覧ください。ちなみに、Let’sEncryptは無料のサービスですが、決して有料のものに劣るということではないようです。たくさんの大手企業様がスポンサードしている非営利団体で運営されているようで、安心してつかえるということになっているようです。)

証明機関から取得するのは3通の証明書

取得する証明書は全部で3通。SSL証明書と中間証明書、秘密鍵の3通を取得することになります。
それぞれをサーバーにアップロードした後にSSL証明書と中間証明書を結合し、fullchain.pemと秘密鍵として必用なディレクトリに保存します。
その後、それをnginxやapacheなどのサーバーアプリケーションに記述して情報を渡します。

SSL証明書と中間証明書を一つにまとめる

ターミナルを用意する

ターミナルを開きVPSサーバーにログインします。

catコマンドで証明書をまとめる

便宜上

デフォルトでよく使われる/etc/letsencrypt/live/に各証明書のファイルが置かれている

SSL証明書をcertificate.pem

中間証明書をintermediate.pem

上記を結合したファイルをfullchain.pemとします

このコマンドではcertificate.pemとintermedicate.pemの2つのファイルの中身を一つのファイルとして記述し直します。どちらの記述が先頭に来るかも重要です。

下のコマンドではcertificate.pemの内容を開き、次にintermediate.pemを表示します。それをfullchain.pemとして保存します。

cat /etc/nginx/letsencrypt/live/certificate.pem /etc/nginx/letsencrypt/live/intermediate.pem /etc/nginx/letsencrypt/live/fullchain.pem

正しく結合できたか確認する

正常に処理できたかは下のコマンドで確認できます。

cat etc/nginx/letsencrypt/live/fullchain.pem

nginxの設定にファイルを渡す

ファイルの中身が問題なければ、nginxに設定を書き込みます。書き込むのはserverブロックのssl設定のところです。

おっさんの大好きなnanoエディターを開きます。

sudo nano /etc/nginx/sites-available/default

サーバーブロックに以下を記述します。

ファイル名は個人の設定に準じる必用があります。

ssl_certificate /etc/nginx/letsencrypt/live/fullchain.pem;
ssl_certificate_key /etc/nginx/letsencrypt/live/privatekey.pem;

nginxの構文チェックをして正しければ、再起動でOK

その後nginxの設定を確認し再起動します。

sudo nginx -t
sudo systemctl reload nginx

コメントする