Edited at

Nginx + TLS で HTTPS なサーバを構築する.

More than 3 years have passed since last update.


経緯

普段は Apache で構築してますが、今回は Nginx でやってみたいな、と思い立ったが吉日。

ひとまず無料で出来る手段でやってます.

過去、リバースプロキシ構成のために触ったぐらいなので、実は本格的に Web サーバ (と言っても API 応答用のアプリケーションサーバなんですが) として利用しようと思ったのは今回が初.


対象者

Nginx 初心者で、HTTPS で接続させたいけど、まったくわからん…って人向けです.

あ、でも最低限 DNS の設定とかは他の方の記事で抑えておいてください. MX とか A レコードの設定とか.(FastMail で独自ドメイン設定するときに必要になるので)


前提


手順と設定

https://juliansimioni.com/blog/https-on-nginx-from-zero-to-a-plus-part-1/



https://juliansimioni.com/blog/https-on-nginx-from-zero-to-a-plus-part-2-configuration-ciphersuites-and-performance/

を見て設定していく.

↑の記事だけで Nginx で HTTPS サーバが構築できます.

簡単!本当にありがとう!

特にここに書くことがないぐらい、懇切丁寧.

※追記:POSTD にて上記の日本語訳もされてます。英語が嫌だ!って人はこちらでも.

http://postd.cc/https-on-nginx-from-zero-to-a-plus-part-1/

http://postd.cc/https-on-nginx-from-zero-to-a-plus-part-2-configuration-ciphersuites-and-performance/

ただ、一か所.

中間証明書の設定をする際、記事の通りに設定していけば何も問題ないはずなんですが、認証局が発行した .pem ファイルと .crt ファイルを cat コマンドで連結して設定する場合には注意が必要です.

これは Nginx に限らずの症状なんですが….

連結した証明書をそのまま開いてみると、こんな感じになってると思います.

-----END CERTIFICATE----------BEGIN CERTIFICATE-----

このままのファイルだと Nginx の再起動時(もしくは config ファイルの reaload 時、configtest 時) に

PEM routines:PEM_read_bio:bad end line.

とかって怒られてしまうので、間に改行を入れて

-----END CERTIFICATE-----

-----BEGIN CERTIFICATE-----

上記のように設定してあげます.

最初これに気付かなくて、認証チェーンが上手く設定できず、B 判定.

ひとまず分からないときは記事に従って設定することって大事だな、と思いました….

参考:

http://answers.splunk.com/answers/221766/how-to-fix-the-below-pem-routinespem-read-biobad-e.html

本当にこれだけ. 何も解説してない.

ひとまず Nginx で HTTPS な Web サイトを構築したい人の手助けになれば幸い.

それでは良きエンジニアライフを(^w^)ノシ