Nginxに証明書を導入してHTTPSを使用する

1. 証明書の結合

自分が使っているサーバ証明書のルート証明書が、ユーザのブラウザでは中間証明書になっている、または、インストールされていない場合、正当な証明書として認識されない。

この場合、自分のルート証明書とユーザのブラウザにインストールされているルート証明書を結びつける連結証明書を認証局が提供している場合がある。

今回の場合、サーバ証明書はRapid SSL、このルート証明書はGeoTrust Global CAで、ユーザのブラウザには、ルート証明書としてEquifax Secure CAがインストールされている可能性があるので、公開されているGeoTrust Global CAとEquifax Secure CAの連結証明書(ex. intermediate.crt)をサーバ証明書(ec. hoge.com.crt)に結合する。

$ cat hoge.com.crt intermediate.crt > hoge.com.chainded.crt

 

2. Nginxの設定

HTTPS(SSL)を利用するには二つの設定方法がある。

(a) 新たにHTTPS専用のserverブロックを丸ごと追記する

(b) 既存のHTTPのserverブロックにsslに必要な項目だけ追記する

基本的な記述内容は、(a), (b)で同じになる。

既存のHTTPサーバーと同じ設定で運用したいなら(b)が便利。ここでは、(b)で進める。

server {
    listen 59.157.2.75:80;
    # リッスンポートを指定
    listen 59.157.2.75:443 ssl;
    server_name abeerforyou.com;
    root /var/www/html/abeerforyou.com;

    # サーバ証明書
    ssl_certificate /etc/pki/tls/certs/hoge.com.chained.crt
    # プライベートキー
    ssl_certificate_key /etc/pki/tls/private/hoge.com.key.pem

    ....
}

 

3. 証明書が正しく設定されているか確認

SSL Certificate Installation Checkerを使用して確認する。

 

■参考文献