前提

Apacheは --enable-ssl を付けてインストールしている必要があります。

準備

# cd /usr/local/apache2/
# mkdir -p ssl/{work,key,cert}
# chmod 700 ssl/key
# DOMAIN_NAME='example.localhost'
# cd ssl
# RAND_VALUE=`vmstat | tail -n 1`
# echo $RAND_VALUE | openssl md5 > work/${DOMAIN_NAME}.rand
# chmod 700 work/${DOMAIN_NAME}.rand

秘密鍵の生成

# openssl genrsa -rand work/${DOMAIN_NAME}.rand -des3 2048 > key/${DOMAIN_NAME}_key.pem

任意に決めたパスフレーズを入力します。
パスフレーズは忘れてはいけません。

# chmod 700 key/${DOMAIN_NAME}_key.pem

CSRの生成

# openssl req -new -key key/${DOMAIN_NAME}_key.pem -out work/${DOMAIN_NAME}_csr.pem

さきほどのパスフレーズを入力します。

入力例

Country Name (2 letter code) [XX]:JP
State or Province Name (full name) []:Tokyo
Locality Name (eg, city) [Default City]:Shibuya
Organization Name (eg, company) [Default Company Ltd]:
Organizational Unit Name (eg, section) []:system1
Common Name (eg, your name or your server's hostname) []:example.localhost
Email Address []:

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
# chmod 700 work/${DOMAIN_NAME}_csr.pem

証明書の生成

例では10年間有効。

# openssl req -x509 -in work/${DOMAIN_NAME}_csr.pem -key key/${DOMAIN_NAME}_key.pem -out cert/${DOMAIN_NAME}_crt.self.pem -days 3650

さきほどのパスフレーズを入力します。

# chmod 700 cert/${DOMAIN_NAME}_crt.self.pem

パスフレーズの削除

このままだとApache起動時にパスフレーズの入力を求められるので、秘密鍵からパスフレーズを削除します。

# openssl rsa -in key/${DOMAIN_NAME}_key.pem -out key/${DOMAIN_NAME}_key.nopass.pem

さきほどのパスフレーズを入力します。

Apacheの設定変更

# vi /usr/local/apache2/conf/httpd.conf
Listen 443
LoadModule ssl_module modules/mod_ssl.so
# vi /usr/local/apache2/conf/extra/httpd-vhosts.conf
<VirtualHost *:443>
    SSLEngine on
    SSLCertificateFile "/usr/local/apache2/ssl/cert/example.localhost_crt.self.pem"
    SSLCertificateKeyFile "/usr/local/apache2/ssl/key/example.localhost_key.nopass.pem"
    
    ServerAdmin test@example.com
    DocumentRoot "/home/example/public_html"
    ServerName example.localhost
    ErrorLog "logs/error_log"
    CustomLog "logs/access_log" combined
</VirtualHost>
# /etc/rc.d/init.d/httpd stop
# /etc/rc.d/init.d/httpd start

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS