このブログは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 #&lt;VirtualHost _default_:443&gt; ... この間の設定を全部コピーしてコメントアウト ... #&lt;/VirtualHost&gt;
すでに、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 &lt;VirtualHost *:443&gt; ←ポート変更 ServerName suusuke.info DocumentRoot /var/www/html ErrorLog logs/suusuke.info-error_log CustomLog logs/suusuke.info-access_log combined env=!no_log &lt;Directory &quot;/var/www/html&quot;&gt; Options FollowSymLinks AllowOverride All Order allow,deny Allow from all &lt;/Directory&gt; #ここから----------------------------------------------------------------------- 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 &lt;Files ~ &quot;\.(cgi|shtml|phtml|php3?)$&quot;&gt; SSLOptions +StdEnvVars &lt;/Files&gt; &lt;Directory &quot;/var/www/cgi-bin&quot;&gt; SSLOptions +StdEnvVars &lt;/Directory&gt; SetEnvIf User-Agent &quot;.*MSIE.*&quot; \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 CustomLog logs/ssl_request_log \ &quot;%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \&quot;%r\&quot; %b&quot; #ここまで----------------------------------------------------------------------- &lt;/VirtualHost&gt;

Apache再起動

[root@suusuke ~]# /etc/rc.d/init.d/httpd restart
https://suusuke.infoにアクセスしてsslでアクセスできることを確認してオーケー!