ちえてらすコンサルティング

Apacheに暗号化通信(SSL)を組み込む

keys 2じぶんサーバーのApacheのSSL設定方法です。

SSL(Secure Sockets Layer)とはWebサーバーの通信を暗号化する仕組みです。
ブラウザのアドレス欄をよ〜くみると、通常私たちは、「http://〜〜」でアクセスしていますが、暗号化ができている場合は、「https://〜〜」とhttpがhttpsになっています。

ここでは、じぶんで借りているVPSのApacheでSSLできるようにします。
前提として、
Apache2.2x yumでインストール済み
openssl インストール済み(CentOS6なら入っている)
となっているとします。

sslok sslerr2

1)mod_sslのインストール

opensslとApacheをつなぐモジュールであるmod_sslをインストールします。

#yum -y install mod_ssl

以下の作業は、Apacheのconfディレクトリ(/etc/httpd/conf)配下で行うことにします。

2)Webサーバの秘密鍵の生成 server.key

パスフレーズの入力を求められます。

#openssl genrsa -des3 1024 > server.key

3)Webサーバの公開鍵の作成 server.csr

組織情報などを入力します。

#openssl req -new -key server.key > server.csr

enter pass phrase for server.key: パスフレーズの入力
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.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.’, the field will be left blank.
—–
Country Name (2 letter code) [GB]:JP 
State or Province Name (full name) [Berkshire]:Nagano 
Locality Name (eg, city) [Newbury]:Shiojiri-shi 市町村
Organization Name (eg, company) [My Company Ltd]:Chieterrace Consulting 組織名
Organizational Unit Name (eg, section) []:Consul 部門名
Common Name (eg, your name or your server’s hostname) []:www.chieterrace.net ホスト名
Email Address []:ken_nakamura@www.chieterrace.net 電子メールアドレス

Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

4)デジタル証明書の作成 server.crt

有効期限1年のデジタル証明書を作成します。
本当はCAと呼ばれる認証局から正式の証明書を作ってもらうのですが、費用もかかるのでここでは自分自身で証明書を発行します。自分を自分で証明しているので、ブラウザからアクセスする際にアラートが出てしまいます。

パスフレーズの入力を求められます。

#openssl x509 -in server.csr -days 365 -req -signkey server.key > server.crt

5)Apache設定ファイルとSSL設定ファイルの設定

yumでmod_sslをインストールしたので、「/etc/httpd/conf.d/ssl.conf」が存在するのでssl.confを修正します。

デジタル証明書と秘密鍵のパスを変更します。
SSLCertificateFile /etc/httpd/conf/server.crt
 SSLCertificateKeyFile /etc/httpd/conf/server.key

6)Apacheを再起動し、httpsで接続できればOK

このままでは、Apache起動時にパスフレーズを聞かれるので、秘密鍵 (server.key) ファイルをあらかじめ復号化しておき、復号化したファイルを使用するようにします。

#cp server.key server.key_bk
#openssl rsa -in server.key_bk > server.key

アクセスすると正式な証明書でないため注意が表示されます。

じぶんSSLなので怪しいと言われる

参考サイト:
http://thinkit.co.jp/free/article/0706/3/7/
http://www.maruko2.com/mw/Apache/SSL%E8%87%AA%E5%B7%B1%E8%A8%BC%E6%98%8E%E6%9B%B8%E3%81%AE%E4%BD%9C%E6%88%90%E3%81%A8mod_ssl%E3%81%AE%E8%A8%AD%E5%AE%9A