このブログはServersman@vpsのCentOS上で動いています。
ブログの他にもいくつかサイトが有って、SSLの必要が出てきたので設定した方法を書きます。
また、証明書は独自の証明書(オレオレ証明書)を使います。
目次
- mod_sslインストール
- Makefileで証明書(.crt)ファイルの作成
- Apache(mod_ssl)の設定
mod_sslインストール
[root@suusuke ~]# yum -y install mod_ssl
Makefileで証明書(.crt)ファイルの作成
[root@suusuke ~]# cd /etc/pki/tls/certs/ [root@suusuke 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 365 -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]:Miyagi Locality Name (eg, city) [Newbury]:Sendai Organization Name (eg, company) [My Company Ltd]:suusuke Organizational Unit Name (eg, section) []: Common Name (eg, your name or your server's hostname) []:Keisuke Suzuki Email Address []:k.suke.suzuki@gmail.com
Apache(mod_ssl)の設定
バーチャルホストにて、複数サイトを運用しているので、バーチャルホスト毎に、httpd-vhosts-[サイト名]-ssl.confという設定ファイルにして個別に設定する。
まずは、ssl.confの<VirtualHost _default_:443\>〜</VirtualHost>をコピーしてコメントアウトする。
[root@suusuke certs]# vi /etc/httpd/conf.d/ssl.conf #<VirtualHost _default_:443> ... この間の設定を全部コピーしてコメントアウト ... #</VirtualHost>
すでに、httpd-vhosts-[サイト名].confという名前でバーチャルホストを設定しているので、その設定ファイルをコピーしてhttpd-vhosts-[サイト名]-ssl.confという名前の設定ファイルを作成する。
また、ssl.confでコピーしたものを追記する。
[root@suusuke ~]# cp /etc/httpd/conf.d/httpd-vhosts.conf /etc/httpd/conf.d/httpd-vhosts-ssl.conf [root@suusuke ~]# vi /etc/httpd/conf.d/httpd-vhosts-ssl.conf <VirtualHost *:443> ←ポート変更 ServerName suusuke.info DocumentRoot /var/www/html ErrorLog logs/suusuke.info-error_log CustomLog logs/suusuke.info-access_log combined env=!no_log <Directory "/var/www/html"> Options FollowSymLinks AllowOverride All Order allow,deny Allow from all </Directory> #ここから----------------------------------------------------------------------- SSLEngine on SSLProtocol all -SSLv2 SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW SSLCertificateFile /etc/pki/tls/certs/server.crt SSLCertificateKeyFile /etc/pki/tls/certs/server.key <Files ~ "\.(cgi|shtml|phtml|php3?)$"> SSLOptions +StdEnvVars </Files> <Directory "/var/www/cgi-bin"> SSLOptions +StdEnvVars </Directory> SetEnvIf User-Agent ".*MSIE.*" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 CustomLog logs/ssl_request_log \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" #ここまで----------------------------------------------------------------------- </VirtualHost>
Apache再起動
[root@suusuke ~]# /etc/rc.d/init.d/httpd restart
https://suusuke.infoにアクセスしてsslでアクセスできることを確認してオーケー!