Apache(2.2系)でSSL接続(なんちゃって、個人認証編)

2011年10月21日

ApacheでSSL接続をするために、SSL個人認証を入れる。

cd /etc/apache2
sudo mkdir ssl	 	 
cd ssl

opensslで秘密鍵(server.key)を作成

sudo openssl genrsa -out server.key 1024

サーバー用公開鍵(server.csr)作成

openssl req -new -key server.key -out server.csr

このコマンドを実行すると、いくつか設定する項目が表示されます。

設定の内容

Country Name (2 letter code) [AU]:国名をいれます。[JP]
State or Province Name (full name) Some-State]:都道府県名をいれます[Tokyo]
Locality Name (eg, city) []:市町村名をいれます[Minatoku]
Organization Name (eg, company) [Internet Widgits Pty Ltd]:組織名をいれます[hoge]
Organizational Unit Name (eg, section) []:組織ユニットもしくはセクションをいれます[hoge]
Common Name (eg, YOUR name) []:ドメインネームをいれます。「あなたの名前.ddo.jp」などです[hoge.ddo.jp]
Email Address []:管理者のアドレスをいれます

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:何も入力せずリターン
An optional company name []:何も入力せずリターン

個人認証局の作成-認証局の鍵の作成

sudo openssl genrsa -out ca.key 1024

個人認証局の作成-認証局の証明書の作成

sudo openssl req -new -x509 -days 3650 -key ca.key -out ca.crt

※365というのは、期限なので、この場合は1年という事になる

設定の内容

Country Name (2 letter code) [AU]:国名をいれます。[JP]
State or Province Name (full name) [Some-State]:都道府県名をいれます[Tokyo]
Locality Name (eg, city) []:市町村名をいれます[Minatoku]
Organization Name (eg, company) [Internet Widgits Pty Ltd]:組織名をいれます[hoge]
Organizational Unit Name (eg, section) []:組織ユニットもしくはセクションをいれます[hoge]
Common Name (eg, YOUR name) []:自分の名前や責任者の名前などを入れます。[ca-hoge]
Email Address []:管理者のアドレスをいれます

※Common Name (eg, YOUR name) []:は先につくったserver.csrと別の名前にしないとうまく動かないそうです。

サーバーの証明書を作成

sudo echo 01 > ca-cert.srl
sudo openssl x509 -CA ca.crt -CAkey ca.key -CAserial ca-cert.srl -req -days 3650 -in server.csr -out server.crt

httpd.confを編集
SSLのLoadModuleを有効化
以下を追加(先頭に#がついてコメントになっているかも)

LoadModule ssl_module modules/mod_ssl.so

サーバ名の設定
ServerNameの項目を有効にして、サーバの名前を設定する

ServerName hoge.ddo.jp

conf/extra/http-ssl.confの編集
※もしかしたら、存在しないので、そのときはhttpd.confの最後に追加するか、新規にssl.confファイルを作ってhttpd.confでInclude ssl.confなどとする
サーバ名と管理者のメールアドレスをhttpd.confと同じように変更。

ServerName gendosu.ddo.jp:443
ServerAdmin you.@your.address

証明書の指定

SSLCertificateFile /etc/apache2/ssl/server.crt

秘密鍵の指定

SSLCertificateKeyFile /etc/apache2/ssl/server.key

CA証明書へのパス設定

SSLCACertificatePath /etc/apache2/ssl

Linux,ubuntu,web

Posted by GENDOSU