俺俺SSL(Debina + nginx)
識別情報を検証できません、とのダイアログが出てくるよくある身内のWEBサイトありますよね、それやってみました。
safariだとこの画面になります。
この画面が出てくる理由ですが、認証局にお金を出して手に入れるべき(健全である証拠の)証明証を自前で用意しているためです。
このサイトの証明証はまったく根拠ないしやばい連中に成り済ましされていたり偽装されているかもしれませんよ、と警告してくれています。
環境
- Linux debian 2.6.32-5-amd64
- nginx version: nginx/1.2.7
- configure arguments: --user=www-data --group=www-data --with-http_ssl_module --with-http_realip_module
nginxの組み込み済モジュールの確認方法
実行ファイルにVオプションを食わせれば確認することができます。
$ nginx -V nginx version: nginx/1.2.7 built by gcc 4.4.5 (Debian 4.4.5-8) TLS SNI support enabled configure arguments: --user=www-data --group=www-data --with-http_ssl_module --with-http_realip_module
鍵を作る
$ cd /usr/local/nginx/conf $ openssl genrsa -des3 -out server.key 1024 $ openssl req -new -key server.key -out server.csr $ cp server.key server.key.org $ openssl rsa -in server.key.org -out server.key $ openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
設定ファイルを修正する
serverディレクティブ書く。
nginx.conf
server { listen 443; ssl on; server_name localhost; ssl_certificate /usr/local/nginx/conf/server.crt; ssl_certificate_key /usr/local/nginx/conf/server.key; (抜粋)
設定を読み込む
sudo ./nginx -s reload
何も出力されなければOK
エラーっぽい文字が出たら
nginx: [emerg] the "ssl" parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx.conf:84
このエラーはSSLのモジュールが組み込まれていないとの出力なので、(自分はそうだった)
$ ./nginx -V
で確認して、--with-http_ssl_module が組み込まれていることを確認する。
なければ、
$ ./configure --with-http_ssl_module $ make $ sudo make install
でビルドし直す。
参考記事
http://jit.sanaechan.net/blog/archives/78 ←コマンド毎に説明があって丁寧
http://d.hatena.ne.jp/rivertop/20100102/1262406331 ← わかりやすい
http://dogmap.jp/2011/05/10/nginx-ssl/ ←スタイリッシュ