Version 10 (modified by mitty, 15 years ago) (diff) |
---|
mod_ssl
- mod_ssl の設定
SSL 証明書の作り方
with ubuntu hardy
- install openssl
- /etc/ssl/openssl.cnf /usr/lib/ssl/misc/CA.sh を適宜変更
- CA.sh を使った場合、カレントディレクトリに「demoCA」というディレクトリが作られる
- 違うディレクトリ・ファイル名にする場合は、45行目前後を変更する (今回はデフォルトのまま)
CATOP=./demoCA CAKEY=./cakey.pem CAREQ=./careq.pem CACERT=./cacert.pem
- 違うディレクトリ・ファイル名にする場合は、45行目前後を変更する (今回はデフォルトのまま)
rootCA
- この作業はルート認証局を作る時に一回だけ行う
- rootCA: $ sudo /usr/lib/ssl/misc/CA.sh -newca
Country Name (2 letter code) [AU]:JP State or Province Name (full name) [Some-State]:Ibaraki Locality Name (eg, city) []:Tsukuba Organization Name (eg, company) [Internet Widgits Pty Ltd]:Private CA for mitty.jp Organizational Unit Name (eg, section) []: Common Name (eg, YOUR name) []:Private CA for mitty.jp Email Address []:
- ここで、「Organization Name」は後で作るサーバ証明書とは違う物にしておく
- 「Common Name」はサーバ証明書ではサーバのFQDNだが、ルートCA証明書の場合はドメインでなくて良い
- rootCA: $ sudo openssl x509 -inform pem -in ./demoCA/cacert.pem -outform der -out ./demoCA/cacert.der
- ブラウザインポート用のルートCA証明書(任意)
新しい証明書
- newserver <= 新しいSSL証明書を作成したいサーバ
- rootCA <= ルートCA証明書を保持しているルート認証局サーバ
- newserver: $ sudo /usr/lib/ssl/misc/CA.sh -newreq
Enter PEM pass phrase: <= type password (1) Verifying - Enter PEM pass phrase: <= retype it ----- Country Name (2 letter code) [AU]:JP State or Province Name (full name) [Some-State]:Ibaraki Locality Name (eg, city) []:Tsukuba Organization Name (eg, company) [Internet Widgits Pty Ltd]:mitty.jp Organizational Unit Name (eg, section) []:laboratory Common Name (eg, YOUR name) []:lab.mitty.jp <= (2) Email Address []: Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: <= type nothing An optional company name []: Request is in newreq.pem, private key is in newkey.pem
- (1) ここでtypeするパスワードは実際には使用されない
- (2) Common Nameに実際に使用するFQDNを入れるが、「*.mitty.jp」の様に指定するといわゆる「ワイルドカード証明書」になる。
- ルートCAへ送付する、サーバ証明書リクエストファイルとサーバ秘密鍵を作成
- newserver: $ sudo openssl rsa -in ./newkey.pem -out ./newkey.pem
Enter pass phrase for ./newkey.pem: <= type password (1)
- (1) -newreq の時と同じパスワードをtype
- サーバ秘密鍵からパスフレーズの削除 (Apacheが起動する際にパスフレーズを聞かれなくてすむようにする)
新しい証明書への署名
- newserverからrootCAへnewreq.pemをコピーする。この時、コピー先はrootCA上でdemoCAがあるディレクトリにすること。
- rootCA: $ sudo /usr/lib/ssl/misc/CA.sh -sign
Enter pass phrase for ./demoCA/private/cakey.pem: <= type rootCA's password (1) Signed certificate is in newcert.pem
- (1) ルートCAを作った際の秘密鍵のパスフレーズをtype
- サーバ証明書がnewcert.pemとして作成される
- rootCA: $ sudo openssl x509 -in newcert.pem -out newcert.crt
- サーバ証明書から必要な部分だけを切り出す
作成物
- ./newkey.pem サーバ秘密鍵
- ./newcert.crt サーバ証明書
- ./demoCA/cacert.der (作った場合)サーバ証明書に対するルートCA証明書