サーバ証明書の作成。

せっかく認証局を構築したからサーバ証明書を発行してftpやらhttp、メールの通信を暗号化してみる。
作業の流れは・・・。

  1. 秘密鍵の作成
    OpenSSLの機能を使って秘密鍵を作成する。
  2. CSRの作成
    CAへサーバ証明書を発行するためのリクエストを作成する。
  3. 署名
    2.で作成したCSRを元に事前に構築したCAで証明書に署名する。

って感じかな?
今回は、PacketiXで利用するVPNサーバの証明書を作成する。

# openssl genrsa -des3 -out /etc/pki/CA/private/vpn.key 1024
Generating RSA private key, 1024 bit long modulus
..........++++++
..++++++
e is 65537 (0x10001)
Enter pass phrase for /etc/pki/CA/private/vpn.key:  <---秘密鍵のパスフレーズを入力
Verifying - Enter pass phrase for /etc/pki/CA/private/vpn.key:  <---秘密鍵のパスフレーズを入力


これで秘密鍵が作成された。

# ls -la /etc/pki/CA/private/vpn.key
-rw-r--r-- 1 root root 963  2月 19 10:00 /etc/pki/CA/private/vpn.key


次に、この秘密鍵を使うときに毎回パスワードを聞かれると自動起動ができないなど、いろいろと不便なので、秘密鍵からパスワードを削除する。

# openssl rsa -in /etc/pki/CA/private/vpn.key -out /etc/pki/CA/private/vpn.key.tmp
Enter pass phrase for /etc/pki/CA/private/vpn.key:  <---秘密鍵のパスフレーズを入力
writing RSA key
# mv /etc/pki/CA/private/vpn.key.tmp /etc/pki/CA/private/vpn.key
mv: `/etc/pki/CA/private/vpn.key' を上書きしてもよろしいですか(yes/no)? yes

作成された秘密鍵からCSRを作成する。

# openssl req -new -days 365 -key /etc/pki/CA/private/vpn.key -out /etc/pki/CA/csr/vpn.csr
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.
-----
Country Name (2 letter code) [GB]:JP
State or Province Name (full name) [Berkshire]:Tokyo
Locality Name (eg, city) [Newbury]:Chiyoda
Organization Name (eg, company) [My Company Ltd]:Cecily.JP
Organizational Unit Name (eg, section) []:VPN Server
Common Name (eg, your name or your server's hostname) []:vpn.cecily.jp
Email Address []:[email protected]

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:  <—空白でEnter
An optional company name []:  <—空白でEnter

サーバ証明書を作成するためにOpenSSLのコンフィグを作成する。

# cp /etc/pki/tls/openssl.cnf /etc/pki/tls/openssl.cnf.server
[ usr_cert ]の項の下記の部分を変更する
- # nsCertType                      = server
+ nsCertType                      = server

上で作成したコンフィグファイルを指定し、前に構築したCAを利用して証明書に署名する。

# openssl ca -config /etc/pki/tls/openssl.cnf.server -in /etc/pki/CA/csr/vpn.csr -keyfile /etc/pki/CA/private/ca.key -cert /etc/pki/CA/certs/ca.crt -out /etc/pki/CA/certs/vpn.crt
Using configuration from /etc/pki/tls/openssl.cnf.server
Enter pass phrase for /etc/pki/CA/private/ca.key:  <---CAの秘密鍵を入力
Check that the request matches the signature
Signature ok
Certificate Details:
        Serial Number: 1 (0x1)
        Validity
            Not Before: May  3 07:08:34 2008 GMT
            Not After : May  3 07:08:34 2009 GMT
        Subject:
            countryName               = JP
            stateOrProvinceName       = Tokyo
            organizationName          = Cecily.JP
            organizationalUnitName    = VPN Server
            commonName                = vpn.cecily.jp
            emailAddress              = [email protected]
        X509v3 extensions:
            X509v3 Basic Constraints:
                CA:TRUE
            Netscape Cert Type:
                SSL Server
            Netscape Comment:
                OpenSSL Generated Certificate
            X509v3 Subject Key Identifier:
                38:24:DA:6C:9D:E1:BF:31:6D:0C:0A:DE:29:47:A5:15:2F:73:77:6E
            X509v3 Authority Key Identifier:
                keyid:08:67:DF:6C:1D:6D:B1:A4:CB:C2:55:DB:3B:B0:00:59:D4:2F:28:15

Certificate is to be certified until May  3 07:08:34 2009 GMT (365 days)
Sign the certificate? [y/n]:y


1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated

これで/etc/pki/tls/certsにvpn.crtというファイル名で証明書が作成された。


  1. コメントはまだありません。

  1. トラックバックはまだありません。