LoginSignup
10
10

More than 5 years have passed since last update.

NginxにSSL証明書を設定してローカルPCから設定確認する

Posted at

以前 Nginxにオレオレ証明書を設定するということをやりましたが、
正規の証明書を入れることになったので、そのメモ書きを残します。

設定確認については、DNS切替前などの理由で設定対象サーバに
FQDN指定でのインターネットアクセスができない場合の確認方法を記載しています。

証明書の設定

証明書の用意

業者に申請して証明書取得するかと思いますが、契約形態によって必要な証明書が
異なりますよね。
今回はクロスルート証明書を使用したため、以下の資材が必要になりました。

  • サーバ証明書
  • 中間証明書
  • クロスルート証明書
  • ルート証明書

事前にテキスト形式で用意しておきます。

証明書の結合

Nginxでは、中間証明書を個別で設定するディレクティブがないので、
ssl_certificateに全部の証明書を結合したファイルを設定する必要があります。
先程用意した証明書を、エディタでもリダイレクトでも何でもいいので結合しましょう。
※ 今回は結合したファイルを「/etc/nginx/server.crt」として話を進めます。

上から以下の順番で結合されるようにします。

-----BEGIN CERTIFICATE-----
サーバ証明書の內容
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
中間証明書の內容
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
クロスルート証明書の內容
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
ルート証明書の內容
-----END CERTIFICATE-----

順番を間違えると証明書エラーが発生するので気を付けましょう。

Nginxへの設定

nginx.confを編集します。
ssl_certificateディレクティブに結合した証明書のファイル、
ssl_certificate_keyに証明書作成に使用した秘密鍵のファイルを設定します。

nginx.conf
中略...
    server {
        listen 443 ssl;
        ssl_certificate /etc/nginx/server.crt;
        ssl_certificate_key /etc/nginx/server.key;
中略...
    }

設定が完了したら、Nginxをリスタートしておきましょう。

ローカルPCからの設定確認

hostsの設定

証明書に設定したFQDNで、ローカルPCからSSL設定したサーバに接続できるように、hostsを書き換えて対応します。
Macであれば/etc/hostsが編集対象となります。

「210.xxx.xx.xx」というGIPに対して「www.hoge.co.jp」を割り当てたい場合は、以下のような記述を追加することになりますね。

210.xxx.xx.xx www.hoge.co.jp

※ 証明書の確認が終わったら、hostsの設定は元に戻しておきましょう。
 意外と忘れがちなので。

疎通確認

あとはブラウザで
https://www.hoge.co.jp」
みたいに指定すれば、先ほど設定した証明書でのSSL通信が確認できます。

もしくは、opensslを使用して確認してもよいですね。

openssl s_client -connect www.hoge.co.jp:443

と叩けば、証明書情報の確認ができます。

Verify return code: 0 (ok)

が表示されれば、証明書は正しく設定されているということになります。
詳細な情報が表示されるため、証明書エラーが出ているときは
ブラウザよりもこちらの方法で確認したほうがよいかと思います。

10
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
10