クラウドセキュリティネットワーク
NGINXでのSSL(HTTPS)設定について
昨今、WebページのSSL化は必須と言っても過言ではありません。
NGINXでは簡単にSSLの設定ができるのでご紹介します。
SSLを使用してWebページを暗号化
Webアプリケーションの通信を盗聴されないようにするためにWebサイトをSSL化(HTTPS化)することは非常に重要です。
今回のブログでは、WebページをHTTPSで接続できるようにするためのNGINXの設定を紹介します。
秘密鍵、CSR(証明書署名要求)、CRT(SSLサーバー証明書)の準備
SSL通信をするために、今回はOpenSSLを利用して秘密鍵、CSR、CRTを作成します。
$ sudo mkdir /etc/nginx/ssl
$ sudo openssl genrsa -out /etc/nginx/ssl/server.key 2048
$ sudo openssl req -new -key /etc/nginx/ssl/server.key -out /etc/nginx/ssl/server.csr
$ sudo openssl x509 -days 3650 -req -signkey /etc/nginx/ssl/server.key -in /etc/nginx/ssl/server.csr -out /etc/nginx/ssl/server.crt
これで3つのファイルの作成が完了です。
$ ls /etc/nginx/ssl/
server.crt server.csr server.key
NGINXの設定
ここまで準備してしまえばNGINXの設定としては非常に少なく簡単にWebページをSSL化ができます。
server{
listen 443 ssl;
ssl_certificate /etc/nginx/ssl/server.crt;
ssl_certificate_key /etc/nginx/ssl/server.key;
}
NGINXに設定を反映させるためにサービスを再起動します。
$ sudo systemctl restart nginx
ここまで設定することでWebページをHTTPSで見ることができるようになります。
今回は以上になります。
実際の動作や暗号化された状態のCurlの出力結果やHTTP・HTTPSの比較などは毎月第3木曜(変わる場合もあります)に実施しているNGINXハンズオントレーニングで説明していますので気になった方は是非参加してみてください!
毎月、こちらのブログ記事や当社のセミナー・イベントページにて参加者を募集しております!