おたむはうぇぶじぇね

ウェブ制作会社に勤めるおたむの創作備忘録

Apache2.2.x + OpenSSL0.9.x でサーバ証明書をインストール

Server

07.11.19 18:51

会社では GlobalSign という認証局のサーバ証明書を利用している。
ここのサーバ証明書は申請から承認、発行までがサービス名どおりとてもクイックで、安い。

サーバ証明書のインストールに利用するコマンドを書いておこう。

root で作業。
サーバの秘密鍵の保管場所を /usr/local/certs とする。
パーミッションを 700 とし、root しか触れなくする。
OpenSSL コマンドでサーバに置く秘密鍵を作成。パスフレーズも設定する。
秘密鍵からウェブ用に利用するためパスフレーズなしの秘密鍵を作成する。
申請用 CSR (認証局へのリクエストファイル) を作成する。

# mkdir /usr/local/certs
# chmod 700 /usr/local/certs
# cd /usr/local/certs/
# openssl genrsa -des3 -out server.key 1024
# openssl rsa -in server.key -out www.server.key
# openssl req -new -days 365 -key server.key -out www.server.csr

最後の申請用 CSR の生成では下記のような対話型で情報入力を促される。

Country Name (2 letter code) [GB]:JP # (国コード)
State or Province Name (full name) [Berkshire]:Tokyo # (都道府県名)
Locality Name (eg, city) [Newbury]:Toshima-Ku # (市町村名)
Organization Name (eg, company) [My Company Ltd]:www.otamu.com # (組織名)
Organizational Unit Name (eg, section) []:system management # (組織内ユニット名)
Common Name (eg, your name or your server's hostname) []:www.otamu.com # (URL ホスト名)
Email Address []:otamu@example.com # (管理者メールアドレス)

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: # (空 Enter)
An optional company name []: # (空 Enter)

ウェブで使う鍵や証明書は apache のディレクトリに放り込んでおくことにする。

# mv ./www.server.csr /usr/local/apache2/conf/www.server.csr
# mv ./www.server.key /usr/local/apache2/conf/www.server.key

GlobalSign では、申請確認メールが CommonName のサーバ宛てに飛んでくる仕様。しかも、アカウントは root@ や admin@ 、webmaster@ と予め決まっており、アカウントは受信可能な状態にしておかなければならない。
root@www.otamu.com などを選択すると、GlobalSign から送られてくる申請確認メールが sendmail により Relaying denied されちゃうので、手っ取り早く対応させるため、下記のファイルを作成し sendmail を再起動した。

# echo "globalsign.com" > /etc/mail/relay-domains
# service sendmail restart

これでメールが配送されるようになる。
予め /etc/aliase で root の配送先を決めておくのも忘れずに。
申請確認メールに書かれている URL に飛ぶことで、承認。
その後、GlobalSign に登録したユーザ宛にサーバ証明書と中間証明書の内容がメールで送付されてくる。

サーバ証明書 (サーバ ID) と中間証明書を下記の場所に保存。

/usr/local/apache2/conf/www.server.20071119.crt
/usr/local/apache2/conf/www.server.20071119.cer

これらの場所を Apache の conf に書いた。

SSLCertificateChainFile "/usr/local/apache2/conf/www.server.20071119.cer"
SSLCertificateFile "/usr/local/apache2/conf/www.server.20071119.crt"
SSLCertificateKeyFile "/usr/local/apache2/conf/www.server.key"

証明書に日付を入れているのは有効期限が分かるようにするため。

Tags :: , , , ,

Author :: おたむ トラックバック (0)

トラックバックURL: http://www.otamu.com/m_type/mt/mt-tb.cgi/28