とりあえずの備忘録

主にパソコンやインターネットに関するメモ

Apache SSLを導入して暗号化通信を行う

https://www.hogehoge.comで暗号化通信をするために、SSLの設定をしたときのメモです。

SSLとは?

SSL(Secure Sockets Layer)とは、インターネット上で通信を暗号化する技術です。SSLを利用してパソコンとサーバ間の通信データを暗号化することで、第三者によるデータの盗聴や改ざんなどを防ぐことができます。

SSLのまとめ|シマンテック

WEBサーバー環境の例

WEBサーバー : Apache1.3 + mod_ssl + OpenSSL
コモンネーム : www.hogehoge.com
秘密鍵 : /usr/local/apache/conf/ssl.key/hogehoge.com.key
CSR : /usr/local/apache/conf/ssl.csr/hogehoge.com.csr
証明書 : /usr/local/apache/conf/ssl.crt/hogehoge.com.crt

「https://www.hogehoge.com」でSSL通信を行うので、コモンネームは「www.hogehoge.com」になる。

SSLの導入

OpenSSLがインストールされているか確認する

# openssl version

秘密鍵を作成する

# cd /usr/local/apache/conf
# openssl genrsa -des3 -out ./ssl.key/hogehoge.com.key 2048

パスワードが要求されるので入力する。

CSRを作成する

# cd /usr/local/apache/conf
# openssl req -new -key ./ssl.key/hogehoge.com.key -out ./ssl.csr/hogehoge.com..csr

秘密鍵の作成のときのパスワードが要求されるので入力する。

続いて各項目を設定する。

・Country Name(国を示す2文字) ⇒ 例、JP
・State or Province Name(都道府県) ⇒ 例、Tokyo
・Locality Name(市区町村) ⇒ 例、Koto-ku
・Organization Name(組織名) ⇒ 例、Shop Hoge
・Organization Unit Name (部門名) ⇒ 例、system
・Common Name(WEBサーバーのFQDN) ⇒ 例、www.hogehoge.com
・Email Addres(入力不要) ⇒ Enterキー入力
・A challenge password(入力不要) ⇒ Enterキー入力
・An optional company name(入力不要) ⇒ Enterキー入力

CSRを確認する

# cd /usr/local/apache/conf
# openssl req -text -noout -in ./ssl.csr/hogehoge.com.csr

秘密鍵のパスワードを解除する

# cd /usr/local/apache/conf
# cp ./ssl.key/hogehoge.com.key ./ssl.key/hogehoge.com.key.org
# openssl rsa -in ./ssl.key/hogehoge.com.key -out ./ssl.key/hogehoge.com.key

2行目で解除前の秘密鍵をバックアップ。そしてどちらの秘密鍵も大切に保管する。

CSRの中身をグローバルサイン等の契約したSSL発行会社へ送る

# cat /usr/local/apache/conf/ssl.csr/hogehoge.com.csr
↓中身
-----BEGIN CERTIFICATE REQUEST-----
(適当な文字列がたくさん並んでいる)
-----END CERTIFICATE REQUEST-----

破線の部分も含めて送る

SSL発行会社から証明書が送られてきたら証明書ファイルに貼り付ける

# vi /usr/local/apache/conf/ssl.crt/hogehoge.com.crt
↓中身
-----BEGIN CERTIFICATE-----
(適当な文字列がたくさん並んでいる)
-----END CERTIFICATE-----

破線の部分も含めて貼り付ける

Apacheの設定ファイルを編集してSSLを反映させる

……
SSLEnable
SSLCertificateFile /usr/local/apache/conf/ssl.crt/hogehoge.com.crt
SSLCertificateKeyFile /usr/local/apache/conf/ssl.key/hogehoge.com.key
SSLLogFile /var/log/www.hogehoge.com
……

httpd.confを開いて証明書と秘密鍵の場所を指定する。証明書の種類によっては中間証明書も存在する場合がある

Apacheを再起動する

# service httpd stop
# service httpd startssl

最後に「https://www.hogehoge.com」にアクセスして問題が無いか確認する