Apache(2.2系)でSSL接続(なんちゃって、個人認証編)
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