CentOS5 認証局(CA)の構築 - itochif.com
認証局(CA)の作成
認証局(CA)の作成用に、CentOS5ではシェルスクリプトが用意されています。これを使用することで容易に認証局を作成する事ができます。
# /bin/cp /etc/pki/tls/openssl.cnf /etc/pki/tls/openssl.cnf.bak # 変更前のopenssl設定ファイルを保存しておく # /bin/sed -i 's/^basicConstraints=CA:.*$/basicConstraints=CA:true/' /etc/pki/tls/openssl.cnf # CA作成用にopenssl設定ファイルを変更 # cd /etc/pki/tls/misc/ # CA作成スクリプトの存在するディレクトリに移動 # ./CA -newca # CA作成スクリプトの実行 CA certificate filename (or enter to create) # CA証明書ファイルがすでにあればファイル名を入力、無ければEnterキーを押下 Making CA certificate ... Generating a 1024 bit RSA private key ...............++++++ .......................................................................++++++ writing new private key to '../../CA/private/./cakey.pem' Enter PEM pass phrase: # CA秘密鍵用パスフレーズを入力 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. ----- Country Name (2 letter code) [GB]:JP # 国名を入力(大文字) State or Province Name (full name) [Berkshire]:Kanagawa # 都道府県名を入力 Locality Name (eg, city) [Newbury]:Yokohama # 市区町村名を入力(ローマ字) Organization Name (eg, company) [My Company Ltd]:itochif.com # 組織名を入力(ローマ字) Organizational Unit Name (eg, section) []:CertificationAuthority # 部門/部署名等、任意の判別文字列を入力 Common Name (eg, your name or your server's hostname) []:PrivateCA # 組織やサーバ名を入力 Email Address []:itochif@example.com # メールアドレスを入力 Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: # Enterを押下。詳細は [man req]コマンドで。 An optional company name []: # Enterを押下。詳細は [man req]コマンドで。 Using configuration from /etc/pki/tls/openssl.cnf Enter pass phrase for ../../CA/private/./cakey.pem: # 上で入力したCA秘密鍵用パスフレーズを入力 Check that the request matches the signature Signature ok Certificate Details: Serial Number: 0 (0x0) Validity Not Before: Mar 22 09:00:00 2008 GMT Not After : Mar 22 09:00:00 2011 GMT Subject: countryName = JP stateOrProvinceName = Kanagawa organizationName = itochif.com organizationalUnitName = CertificationAuthority commonName = PrivateCA emailAddress = itochif@example.com X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: OpenSSL Generated Certificate X509v3 Subject Key Identifier: BB:D5:B5:95:22:A9:0C:93:A7:2E:86:CB:7D:C6:FA:1E:87:3F:88:F6 X509v3 Authority Key Identifier: keyid:BB:D5:B5:95:22:A9:0C:93:A7:2E:86:CB:7D:C6:FA:1E:87:3F:88:F6 Certificate is to be certified until Mar 22 09:00:00 2011 GMT (1095 days) Write out database with 1 new entries Data Base Updated # /bin/cp /etc/pki/tls/openssl.cnf.bak /etc/pki/tls/openssl.cnf # opensslの設定を元に戻しておきます cp: `/etc/pki/tls/openssl.cnf' を上書きしてもよろしいですか(yes/no)? yes # yesを入力 # /bin/chmod 0400 /etc/pki/CA/private/cakey.pem # rootユーザーのみが秘密鍵のファイルを読み取れるように変更図1.認証局(CA)の秘密鍵と自己署名証明書の作成
作成されるファイルのパスは以下になります。
- /etc/pki/CA/private/cakey.pem (CAの秘密鍵)
- /etc/pki/CA/cacert.pem (CAの自己署名証明書)
これらのファイルのうち、cakey.pem(CAの秘密鍵)は外部に漏れないように厳重に管理する必要があります。cacert.pemはクライアントPCにルート証明書として登録するため、安全なルートで配布する必要があります。
掲載日 3/23/2008

認証局(Certification Authority)が何を行うのかというと、第三者の公開鍵が、間違いなくその組織(や個人)のものだという事の証明を行います。この証明には[なりすまし]や[改ざん]を検知する仕組みが含まれています。
注意するべき点はここで構築するのが自前の認証局であり、他人からは第三者を証明するはずのこの認証局自体が信頼できない点です。その点を回避するためになんらかの安全なルートで自前の認証局の証明書をルート証明書として登録してもらう必要があります。ただしその場合、この認証局の秘密鍵の管理に責任を負う事を認識する必要があります。自前の認証局を利用するには、扱う情報の内容や利用範囲を考慮する必要があります。