広告・Googleアドセンス728px

Article(記事)

Apache + SSL

投稿日:
更新日:

ご注意ください
この記事は2年以上前に書かれたものですので、内容が古い可能性があります。


Apache + mod_sslによるSSL通信の手順をメモ。

流れ

① サーバキーの作成
② 認証局(CA)への申請書作成(CSR)
③ CAによるサーバ証明書の作成(CRT)
④ ssl.confの修正
⑤ apache再起動

まず公開鍵・秘密鍵のペアを作り、作成した公開鍵を認証局へ認証してもらい、サーバ証明書をもらう。という流れになる。

ここではcannon-ball.netという大学のサークルのHPをSSL化する手順を例に説明する。

①サーバキーの作成

公開鍵・秘密鍵のペアを作成。

[root /]# cd /etc/httpd/conf/ssl.key
[root ssl.key]# openssl genrsa -out cannon.key 2048

Generating RSA private key, 2048 bit long modulus
............................................+++
..............................................................................................+++
e is 65537 (0x10001)
[root ssl.key]#

② 認証局(CA)への申請書作成(CSR)
次にCAへ提出する申請書(Certificate Signing Request : CSR)を作成。

[root ssl.key]# cd ../ssl.csr/
[root ssl.csr]# openssl req -new -key ../ssl.key/cannon.key -out ./cannon.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]:Tokyo
Locality Name (eg, city) [Newbury]:Kamata
Organization Name (eg, company) [My Company Ltd]:Cannon-Ball.NET
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:www.cannon-ball.net
Email Address []:webmaster@cannon-ball.net

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
[root ssl.csr]#

③ CAによるサーバ証明書の作成(CRT)
提出されたCSRについてサーバ証明書を発行する。また有効期限は365日とする。

[root ssl.csr]# cd ../ssl.crt
[root ssl.crt]# openssl x509 -req -days 365 -in ../ssl.csr/cannon.csr
-signkey ../ssl.key/cannon.key -out cannon.crt
Signature ok
subject=/C=JP/ST=Tokyo/L=Kamata/O=Cannon-Ball.NET/CN=www.cannon-ball.net/emailAd
dress=webmaster@cannon-ball.net
Getting Private key
[root ssl.crt]#

できた証明書の内容を確認する。

[root ssl.crt]# openssl x509 -in cannon.crt -noout -text
Certificate:
Data:
Version: 1 (0x0)
Serial Number: 0 (0x0)
Signature Algorithm: md5WithRSAEncryption
Issuer: C=JP, ST=Tokyo, L=Kamata, O=Cannon-Ball.NET, CN=www.cannon-ball.
net/emailAddress=webmaster@cannon-ball.net
Validity
Not Before: Sep 23 07:40:51 2004 GMT
Not After : Sep 23 07:40:51 2005 GMT

Subject: C=JP, ST=Tokyo, L=Kamata, O=Cannon-Ball.NET, CN=www.cannon-ball
.net/emailAddress=webmaster@cannon-ball.net
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
RSA Public Key: (2048 bit)
Modulus (2048 bit):
a1:ac:c2:4d:6d:6f:54:ac:42:c3:68:30:a5:5d:37:
7c:e3:e3:fc:b5:1c:09:9b:a7:9d:08:c7:b9:79:bd:
81:73
Exponent: 65537 (0x10001)
Signature Algorithm: md5WithRSAEncryption
3f:12:f0:5e:c9:b7:9f:ee:56:23:4d:65:76:08:67:9f:5e:9f:
8c:55:9c:8f
[root ssl.crt]#

④ ssl.confの修正
httpd.conf及び、ssl.confを修正する。ただし、IPアドレスが1つの場合にはサーバ証明書は1つしか有効にならないので注意が必要。

httpd.confを修正

NameVirtualHost *:80
NameVirtualHost *:443

とし443ポートもListenするようにする。

そして、サーバの秘密鍵と証明書を指定する。
ssl.conf

# General setup for the virtual host
DocumentRoot "$cannon.home"
ServerName www.cannon-ball.net:443
ServerAdmin webmaster@cannon-ball.net
ErrorLog logs/cannon-ssl_error_log
TransferLog logs/cannon-ssl_access_log

SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile /etc/httpd/conf/ssl.crt/cannon.crt
SSLCertificateKeyFile /etc/httpd/conf/ssl.key/cannon.key

SSLOptions +StdEnvVars


SSLOptions +StdEnvVars

SetEnvIf User-Agent ".*MSIE.*"
nokeepalive ssl-unclean-shutdown
downgrade-1.0 force-response-1.0
CustomLog logs/cannon-ssl_request_log
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x "%r" %b"

⑤ apache再起動

[root /] service httpd restart

としてapacheの再起動をする。

そして、https://www.cannon-ball.net/へアクセス。

WS000004.JPG

WS000003.JPG

OK.

この記事は役に立ちましたか?評価をお願いいたします。
[合計: 0 平均: 0]

広告336px

広告336px

-Article(記事)
-,

Copyright© 蒲田ネット , 2017 AllRights Reserved.