どうも、Adachinです。
前回SSLの概要をブログしたので、
今回はSSL更新方法をブログしやす。
※新規の場合はまたあとで追記します→一番下に
■たくさんある鍵と証明書について
- CSR(証明書のリクエストファイル)
- KEY(sshでいう秘密鍵的な)
- CRT(証明書/公開鍵的な)
- ca.CRT(中間証明書)
↑まずはこれらを理解します。「こんなにあるのかよ覚えられん・・・」
と思いましたが、実は・・・
CSR+KEY=CRT(証明書)
なわけで、
CSR+KEY+CRT→3つ揃って1セット
なのです。ここらへんは実際SSLの業者さんに証明書作ってもらい、
自分の秘密鍵と証明書が合致すれば問題ないというお話。(前回ブログした通り)
ちなみにbit数は2048が主流
■設定方法
実際にテストでどんなことをやるのか紹介します
■確認
1 2 3 4 5 6 7 8 9 |
# httpd -S VirtualHost configuration: wildcard NameVirtualHosts and _default_ servers: _default_:443 adachin.architects.ne.jp (/etc/httpd/conf.d/ssl.conf:18) *:80 is a NameVirtualHost default server adachin.architects.ne.jp (/etc/httpd/conf/adachin.architects.ne.jp.conf:1) port 80 namevhost adachin.architects.ne.jp (/etc/httpd/conf/adachin.architects.ne.jp.conf:1) port 80 namevhost adachin.test.ne.jp (/etc/httpd/conf/adachin.test.ne.jp.conf:1) Syntax OK |
こんな感じでapacheやバーチャルホスト、SSLの設定ディレクトリがどこだか分かります
■CRT & KEYファイル合致確認
- 証明書ファイル及び中間証明書の準備
証明書ファイル及び中間証明書ファイルをサーバにアップロード - CRTファイルとKEYファイルが合致する事を確認
1 2 3 |
# /usr/bin/openssl x509 -in hoge.crt -modulus -noout > CRT.txt # /usr/bin/openssl rsa -in hoge.key -modulus -noout > KEY.txt # diff CRT.txt KEY.txt |
もしくは
1 |
# openssl s_server -cert hoge.crt -key hoge.key |
こっちだと余計なファイルも作らないし、その場で動作確認にもなる
ctrl +c で抜けれる
■confファイルのコピー
1 |
# cp -ip /etc/httpd/conf.d/ssl.conf /etc/httpd/conf.d/ssl.conf.日付 |
なんでもコピー
■更新
1 2 3 |
SSLCertificateFile /etc/httpd/conf.d/SSL/domain-2015.crt SSLCertificateKeyFile /etc/httpd/conf.d/SSL/domain-2015.key SSLCertificateChainFile /etc/httpd/conf.d/SSL/ca.crt #中間証明書 |
■編集内容確認
1 |
# diff /etc/httpd/conf.d/ssl.conf /etc/httpd/conf.d/ssl.conf.日付 |
確認しないとアカンね
■構文チェック
1 |
# /etc/init.d/httpd configtest |
■apache再起動
1 |
# /etc/init.d/httpd restart |
夜中とかにリスタートするのが望ましい
■サイト確認
・httpsでサイトが見れるのか
・SSLチェッカーでちゃんと期限などあっているのか
https://cryptoreport.geotrust.com/checker/views/certCheck.jsp
を確認しクローズ
■まとめ
で、何が危険なのかというと、失敗した場合、WEBサイトが全く見れなくなります。
そうならないために!!!!!
必ずCRTとKEYの合致確認をしなければならないということ。
CRTとKEYがもし間違っていたとしても、
構文チェックで問題なければいいということではありません。
あくまで構文チェックは構文だけをチェックするだけなので、
プログラムの中身まではチェックしてくれません。
以上です!!(・∀・)b
もっと詳しく書いてあるのが大先輩のQiitaより
http://qiita.com/kuni-nakaji/items/5118b23bf2ea44fed96e
■新規の場合
・CSRとKEYの作成
1 2 3 4 5 |
$ openssl genrsa -out adachin.jp-2015.key 2048 Generating RSA private key, 2048 bit long modulus ..............................+++ ..........+++ e is 65537 (0x10001) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
$ openssl req -new -key adachin.jp-2015.key > adachin.jp-2015.csr > JP > Tokyo > Shibuya-ku > 会社名 > 部署名 > adachin.jp(コモンネーム) > > > > EOF You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. |
・CSRを業者に渡す
・CRTが来たらKEYと合致確認
・シンボリックリンクで楽に設定する
1 2 |
$ ln -fs ./2015/adachin.jp-2015.key adachin.jp.key $ ln -fs ./2015/adachin.jp-2015.crt adachin.jp.crt |
・nginxなりapacheなり再起動する
以上!
0件のコメント