» Linux ディストリビューション » CentOS » 機能拡張 » SSL

SSL 通信暗号化機能を導入する

 SSL 通信は、「クライアントとサーバー間のデータが盗聴・改竄される」などの脅威から保護するための暗号化機能です。 また、「接続先のサーバーが正規のサーバーであるか」、「接続元のクライアントが正規のクライアントであるか」など接続時のセキュリティチェックとしても利用することができます。



 SSL 通信暗号化パッケージは、yum コマンドを使用してインストールします。

[root@web ~]# yum install mod_ssl

[ CentOS 6 / CentOS 5 ]


 SSL 通信を行う際、サーバー証明書が必要になります。 また、サーバー証明書の作成には、サーバー秘密鍵・サーバー公開鍵が必要になります。


[root@web ~]# cd /etc/pki/tls/certs/


[root@web certs]# make server.key

umask 77 ; ¥
        /usr/bin/openssl genrsa -aes128 2048 > server.key
Generating RSA private key, 2048 bit long modulus
e is 65537 (0x10001)
Enter pass phrase:パスワードを入力する
Verifying - Enter pass phrase:パスワードを再入力する


[root@web certs]# openssl rsa -in server.key -out server.key

Enter pass phrase for server.key:サーバー秘密鍵のパスワードを入力する
writing RSA key


[root@web ~]# cd /etc/pki/tls/certs/


[root@web certs]# make server.csr

umask 77 ; ¥
        /usr/bin/openssl req -utf8 -new -key server.key -out server.csr
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]:Saitama [ 地域名 ]
Locality Name (eg, city) [Newbury]:Saitama [ 都市名 ]
Organization Name (eg, company) [My Company Ltd]:<Enter> [ 組織名 ]
Organizational Unit Name (eg, section) []:<Enter> [ 組織の部門名 ]
Common Name (eg, your name or your server's hostname) []:www.i2kt.com [ サーバー名(FQDN) ]
Email Address []:webmaster@i2kt.com [ メールアドレス ]

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:<Enter>
An optional company name []:<Enter>


[root@web ~]# cd /etc/pki/tls/certs/


[root@web certs]# openssl x509 -in server.csr -out server.pem -req -signkey server.key -days 365


[root@web certs]# chmod 400 server.*


[root@web certs]# ls -l server.*

-r-------- 1 root root 692 11月 19 21:15 server.csr [ サーバー公開鍵 ]
-r-------- 1 root root 887 11月 19 21:03 server.key [ サーバー秘密鍵 ]
-r-------- 1 root root 928 11月 19 21:17 server.pem [ サーバー証明書 ]

[ CentOS 6 / CentOS 5 ]


 SSL に関するウェブサーバーの設定を変更します。

[root@web ~]# vi /etc/httpd/conf.d/ssl.conf

#   Server Certificate:
# Point SSLCertificateFile at a PEM encoded certificate.  If
# the certificate is encrypted, then you will be prompted for a
# pass phrase.  Note that a kill -HUP will prompt again.  A new
# certificate can be generated using the genkey(1) command.
# サーバー証明書の格納先を指定
SSLCertificateFile /etc/pki/tls/certs/server.pem

#   Server Private Key:
#   If the key is not combined with the certificate, use this
#   directive to point at the key file.  Keep in mind that if
#   you've both a RSA and a DSA private key you can configure
#   both in parallel (to also allow the use of DSA ciphers, etc.)
# サーバー秘密鍵の格納先を指定
SSLCertificateKeyFile /etc/pki/tls/certs/server.key


[root@web ~]# /etc/rc.d/init.d/httpd restart

httpd を停止中:                                            [  OK  ]
httpd を起動中:                                            [  OK  ]

[ CentOS 6 / CentOS 5 ]