WEBサービス創造記

WEBサービスを作ったり保守したりしてる人のメモブログです。

SSLを利用して通信内容を暗号化

      2012/12/08

SSLとは?

SSLとは、Secure Sockets Layerの略で、WEBブラウザとWEBサーバ間で情報を暗号化して通信するためのプロトコルです。
SSLを利用することで、ブラウジング中にパスワードなどの個人情報が盗聴されるのを防ぐことができます。

mod_sslのインストール

[root@centos ~]   yum -y install mod_ssl

サーバー用秘密鍵・証明書作成

[root@centos ~]# cd /etc/pki/tls/certs  ※ディレクトリの移動
[root@centos ~]# sed -i "s/365/3650/g" Makefile   ※サーバー証明書有効期限を1年から10年に変更

[root@centos certs]#  make server.crt
umask 77 ; \\
        /usr/bin/openssl genrsa -des3 1024 > server.key
Generating RSA private key, 1024 bit long modulus
..............................++++++
.........++++++
e is 65537 (0x10001)
Enter pass phrase:  ※任意のパスワードを入力(実際は表示されません)
Verifying - Enter pass phrase:  ※パスワードを再入力(実際は表示されません)
umask 77 ; \
        /usr/bin/openssl req -utf8 -new -key server.key -x509 -days 3650 -out server.crt -set_serial 0
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]:Tokyo  ※都道府県名
Locality Name (eg, city) [Newbury]:Shinjuku   ※市区町村名
Organization Name (eg, company) [My Company Ltd]:linuxserver.jp   ※組織名
Organizational Unit Name (eg, section) []:admin   ※組織の部署名
Common Name (eg, your name or your server''s hostname) []:linuxserver.jp  ※サーバーホスト名
Email Address []:webmaster@linuxserver.jp ※メールアドレス

サーバー鍵からパスワードを削除

サーバー鍵からパスワードを削除します。
これは、WEBサーバー起動時に毎回パスワードの入力を求められるのを回避するための処理です。

[root@centos certs]# openssl rsa -in server.key -out server.key
Enter pass phrase for server.key:   ※サーバー秘密鍵(server.key)を作成した際に入力したパスワードを入力(実際は表示されません)
writing RSA key

ApacheのSSL設定ファイルを編集

[root@centos certs]# vi /etc/httpd/conf.d/ssl.conf    ※ApacheのSSL設定ファイルを編集
DocumentRoot "/var/www/html"    ※ドキュメントルートを指定
SSLCertificateFile /etc/pki/tls/certs/server.crt    ※サーバー用証明書のパスを指定
SSLCertificateKeyFile /etc/pki/tls/certs/server.key ※サーバー秘密鍵のパスを指定

Apacheの再起動

[root@centos certs]# /etc/rc.d/init.d/httpd restart

 - WEBサーバ構築 , , , , ,