mazeltov7のweb断片

備忘録的なテキトーなことを書きます。(技術記事はQiitaに移行しました http://qiita.com/mazeltov7 )

サイトをSSL化する(VPS, CentOS6 + Apache)

ssl化の必要できたので、さっとやってみた。大体以下な流れ
1. SSL用の鍵作成とCSRの作成
2. 証明書を申し込みと支払い
3. 証明書等をセット
4. OK

環境:

  • CentOS6
  • Apache: Apache/2.2.15 (CentOS6の標準そのまま)

まず、どこで証明書を買うかを決める

が、結局、
ラピッドSSL | さくらのSSL
こちらに決定。

mod_ssl入れる

入ってない場合は入れる。

$ yum install mod_ssl

SSL用の鍵作成とCSRの作成

*鍵をどこに置くかだけど、今回は/etc/httpd/conf/以下にフォルダ作って置いた。他にも/etc/pki/tls/certs以下に置いてたりがデフォっぽい。(ssl.confの設定では、これ以下にあったし、この以下にはダミーも置いてたので、こちらのがええかも…)

$ cd /etc/httpd/conf
$ mkdir ssl.key // 秘密鍵用
$ mkdir ssl.csr // CSR用
$ mkdir ssl.crt // 証明書用

// 秘密鍵作成 (2048bitで作ります)
// パスワード求められます。このパスワード忘れないように
$ openssl genrsa -des3 -out ./ssl.key/hogehoge.com.2016.key 2048

// CSR作成 (さっきのkeyを使って作成する)
// で、ここで国とか組織名とか色々聞かれる
$ openssl req -new -key ./ssl.key/hogehoge.com.2016.key -out ./ssl.csr/hogehoge.com.2016.csr

申し込みと支払いする

ここは各プラットフォームの流れにそってやる。上で作ったCSRの中見を$ cat hogehoge.com.2016.csrしてコピペするシーンもあり。

セットする

審査中・審査後、メールでOOセットしてくれ、とか言われるので、その通りにする。
終わったらこんな感じになってる。

/etc
  |
  |-httpd
    |
    |-conf
      |
      |-ssl.key
      |  |
      |  |-hogehoge.com.2016.key
      |
      |-ssl.csr
      |  |
      |  |-hogehoge.com.2016.csr
      |
      |-ssl.crt
      |  |
      |  |-hogehoge.com.2016.crt
      |  |-intermediate_sha256.cer

で、あとはssl.confに反映させるのと、firewallでsslのポートを通す

$ vim /etc/httpd/conf.d/ssl.conf
SSLCertificateFile  SSLサーバ証明書ファイルを指定します。
SSLCertificateKeyFile   SSLサーバ証明書とペアになる秘密鍵を指定します。
SSLCertificateChainFile CSPSSLの中間証明書ファイルを指定します。

$ vim /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT // これを追加したりする

$ service iptables restart
$ service httpd restart

で、https://hogehoge.comでアクセスして表示されたらOK!

参考:

あと、key, crt, csr !?!?!!?とかの詳しい説明についてはここがわかりやすい。
RSA鍵、証明書のファイルフォーマットについて - Qiita

ざっくり、 keyが秘密鍵
csrが証明申込書(Requestリクエスト)
crt(Certificationなので)証明書
って感じ。(ざっくり…)