スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

自前CA

OpenSSLはインストール済み前提で。

【ディレクトリとか作ったり】
# cd /usr/local/ssl
# mkdir localCA
# cd localCA
# mkdir certs
# mkdir newcerts
# mkdir crl
# mkdir private
# echo 01 > serial
# touch index.txt


【openssl.cnfの設定】
カレントディレクトリは/usr/local/ssl

デフォから変えるところは
dir = ./localCA
certificate = $dir/cacert.pem
private_key = $dir/private/caprivatekey.pem
default_days = 3650
あと
RANDFILE = $dir/private/.rand
ということで、とりあえず↓にしてしまった…。
# ln -s /var/adm/messages /usr/local/ssl/localCA/private/.rand

【CA証明書作成】
・CA秘密鍵作成
# openssl genrsa -rand /var/adm/messages -des3 1024 > localCA/private/caprivatekey.pem
パスフレーズを入力するから、それを控えておく

・CSR作成
# openssl req -new -key localCA/private/caprivatekey.pem \
-out localCA/csr/cacsr.pem

上記で入力したパスフレーズを入力する。国名とか適宜。
Common nameはサイトのFQDNあるいはIPアドレス。

・自前でCA証明書発行
# openssl x509 -in localCA/csr/cacsr.pem -out localCA/cacert.pem \
-req -signkey localCA/private/caprivatekey.pem -days 365

上記で入力したパスフレーズを入力する。
-daysはCA証明書の有効期間。

CA秘密鍵、CSR、CA証明書はいずれも
# chmod 400 ~

【サーバ証明書作成】
カレントディレクトリは/usr/local/ssl

・秘密鍵作成
# openssl genrsa -rand /var/adm/messages -des3 1024 > localCA/private/privatekey.pem
パスフレーズを入力するから、それを控えておく

・CSR作成
# openssl req -new -key localCA/private/privatekey.pem \
-out localCA/csr/csr.pem

上記で入力したパスフレーズを入力する。国名とか適宜。
Common nameはサイトのFQDNあるいはIPアドレス。

・自前CAで署名してサーバ証明書発行
# openssl ca -config ./openssl.cnf -policy policy_anything \
-in localCA/csr/csr.pem \
-out localCA/newcerts/cert.pem

CA秘密鍵のパスフレーズを入力する。
有効期間を-days 有効期間で指定してもよし。

秘密鍵、CSR、サーバ証明書はいずれも
# chmod 400 ~

【https-ssl.confの設定】
/usr/local/apache2/conf/extra/httpd-ssl.conf

SSLPassPhraseDialog exec:/usr/local/ssl/bin/passphrase.sh
SSLCertificateFile /usr/local/ssl/localCA/newcerts/cert.pem
SSLCertificateKeyFile /usr/local/ssl/localCA/private/privatekey.pem
SSLCACertificateFile /usr/local/ssl/localCA/cacert.pem

↓あたりを環境に合わせて修正。
<VirtualHost 192.168.1.1:443>

# General setup for the virtual host
DocumentRoot "/usr/local/apache2/htdocs"
ServerName 192.168.1.1
ServerAdmin hoge@hogehoge.jp
ErrorLog /usr/local/apache2/logs/error_log
TransferLog /usr/local/apache2/logs/access_log

ちなみに/usr/local/ssl/bin/passphrase.shの中身は

#!/bin/sh
echo 'passphrase' ← 秘密鍵のパスフレーズ(サーバ証明書の方)

CA証明書はブラウザで「信頼されたルート証明機関」にインポートする。

この記事のトラックバックURL

http://ysmt.blog21.fc2.com/tb.php/122-ffb519c9

コメント

コメントする

管理者にだけ表示を許可する

Template Designed by DW99

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。