2012年05月08日

サーバー証明書のつくりかた in CentOS5

 最近VPSが流行ってきたので、サーバーに入れるSSL証明書の需要も高まってきているのではと思います。
 ので今日の記事は証明書の作成手順メモです。半分は前回の認証局のつくりかたの続きです。

 サーバー証明書は、
署名要求を作る→認証局が署名する
という流れで作成します。


1)署名要求を作る

# ./CA -newreq
Generating a 4096 bit RSA private key
...................++
................++
writing new private key to 'newkey.pem'
Enter PEM pass phrase:(サーバー秘密鍵のパスワードを決めて入れる)
Verifying - Enter PEM pass phrase:(もっかい入れる)
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
State or Province Name (full name) [Berkshire]:Saitama
Locality Name (eg, city) [Newbury]:Ju-man-goku
Organization Name (eg, company) [My Company Ltd]:AetherWorks
Organizational Unit Name (eg, section) []:Mail Server
Common Name (eg, your name or your server's hostname) []:mail.aetherworks.org ←ここは必ずドメイン名
Email Address []:(メールアドレスを入れる)

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:(???)
An optional company name []:(???)
Request is in newreq.pem, private key is in newkey.pem
#


 完了すると、 newkey.pem と newreq.pem ができます。

# ls -l new*
-rw-r--r-- 1 root root 3311 May 6 12:22 newkey.pem
-rw-r--r-- 1 root root 3243 May 6 12:28 newkey_nopass.pem
-rw-r--r-- 1 root root 1732 May 6 12:22 newreq.pem
#


 newkey.pem を使うにはパスワードが必要なため、Apacheに組み込むと再起動のたびパスワード入力が必要になってしまい不便です。なので(セキュリティ強度は落ちますが)パスワード入力を省けるようにします。

# openssl rsa -in newkey.pem -out newkey_nopass.pem
Enter pass phrase for newkey.pem:
writing RSA key
# ls -l new*
-rw-r--r-- 1 root root 3311 May 6 12:22 newkey.pem
-rw-r--r-- 1 root root 3243 May 6 12:28 newkey_nopass.pem
-rw-r--r-- 1 root root 1732 May 6 12:22 newreq.pem
#


 そして、CAを使ってリクエストに署名します。

# ./CA -sign
Using configuration from /etc/pki/tls/openssl.cnf
Enter pass phrase for ../../CA/private/cakey.pem:
Check that the request matches the signature
Signature ok
Certificate Details:
(確認用にサーバー証明書の情報が出てくる)
Certificate is to be certified until May 6 03:30:50 2013 GMT (365 days)
Sign the certificate? [y/n]:y 【署名してよければ y を入力】


1 out of 1 certificate requests certified, commit? [y/n]y 【ここも y を入力】
Write out database with 1 new entries
Data Base Updated
Certificate:
(署名したサーバー証明書の情報が出てくる)
Signed certificate is in newcert.pem
#


 署名をすると newcert.pem ができます。

# ls -l new*
-rw-r--r-- 1 root root 7623 May 6 12:31 newcert.pem
-rw-r--r-- 1 root root 3311 May 6 12:22 newkey.pem
-rw-r--r-- 1 root root 3243 May 6 12:28 newkey_nopass.pem
-rw-r--r-- 1 root root 1732 May 6 12:22 newreq.pem
#


4)サーバー証明書をサーバーに組み込む

 証明書(newcert.pem)と鍵(newkey_nopass.pem)をサーバーに組み込んで使用します。
 場合によっては変換が必要な場合もあるので、変換の仕方をいくつか挙げます。

 Apacheなどで利用するcrt形式に変換します。

# openssl x509 -in newcert.pem > newcert.crt


 Dovecotなどで利用するcrt+秘密鍵ファイルに変換します

# cat newcert.crt newkey_nopass.pem > newckpair.pem


参考サイト:
http://www.bnote.net/linux/self_ca.shtml
http://tkoshima.net/wp/archives/451
http://www.tietew.jp/2007/01/30/how-to-setup-ca-using-openssl
posted by きさらぎ at 00:17| Comment(0) | TrackBack(0) | サーバー
この記事へのコメント
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/55711218
※ブログオーナーが承認したトラックバックのみ表示されます。
※言及リンクのないトラックバックは受信されません。

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