SSL証明書を作成する際に作る、CSR(署名リクエスト)と秘密鍵ですが、そのペアを誤ると当然使い物にならなかったりします。
オレオレ証明書の場合はやり直しがききますが、認証局に申し込むSSL証明書の場合は、取り返しのつかない事態にもなりかねません。
また、複数のFQDNのCSRを作る場合、作業場所や操作を意識しながら行わないとどの秘密鍵とCSRがペアなのかわからない事態にもなってしまいます。
ここでは、申し込む前にきちんとCSRと秘密鍵のペアが正しいかを確認する方法を書いておきます。
秘密鍵とCSRの作成
まずは、秘密鍵とCSRを作成してみます。
この辺りの手順は、各認証局のマニュアルページにも書かれていたりするのであまり詳しく書きません。
# openssl genrsa -rand /dev/urandom -des3 -out private.key 1024 2048 semi-random bytes loaded Generating RSA private key, 1024 bit long modulus ............++++++ ....++++++ e is 65537 (0x10001) Enter pass phrase for private.key: Verifying - Enter pass phrase for private.key:
これで、private.keyという秘密鍵のファイルができました。
秘密鍵を作成する際に入力したパスフレーズをきちんと覚えて起きます。
# openssl req -new -key private.key -out hoge.csr Enter pass phrase for private.key: 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]:Shibuya Organization Name (eg, company) [My Company Ltd]:hogehoge inc. Organizational Unit Name (eg, section) []:hoge section Common Name (eg, your name or your server's hostname) []:www.hogehoge.com Email Address []: Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []:
これで、CSR(hoge.csr)ができました。
秘密鍵とCSRの確認
では、本題の2つのペアが正しいか(その秘密鍵から作られたCSRか)を確認していきます。
# openssl rsa -in private.key -text Enter pass phrase for private.key: Private-Key: (1024 bit) modulus: 00:bc:ac:01:68:65:7b:2b:05:48:ad:f6:af:60:2f: 22:48:4b:59:2d:03:18:81:d5:78:da:ac:23:cf:55: 39:bb:c7:a2:2d:f2:7a:73:b2:66:c5:1c:bf:20:59: c4:ae:c4:01:f5:eb:68:a2:d8:93:b1:04:f2:0e:ee: 9a:5f:b9:4b:b6:6b:c6:fa:a3:c9:9a:d0:36:39:db: ba:8d:1f:ff:1e:74:69:f8:9e:de:1a:d7:b5:2e:c5: 27:5b:5d:fa:8c:6e:e9:ac:79:e5:dd:a5:77:ff:1a: ec:b7:b7:49:6b:f2:69:ad:6a:1f:37:1b:f5:77:d6: c1:57:0f:f9:69:03:8c:1c:7d publicExponent: 65537 (0x10001) - snip -
秘密鍵を作成した際のパスフレーズが正しければ、内容が確認できます。
# openssl req -in hoge.csr -text Certificate Request: Data: Version: 0 (0x0) Subject: C=JP, ST=Tokyo, L=Shibuya, O=hogehoge inc., OU=hoge section, CN=www.hogehoge.com Subject Public Key Info: Public Key Algorithm: rsaEncryption RSA Public Key: (1024 bit) Modulus (1024 bit): 00:bc:ac:01:68:65:7b:2b:05:48:ad:f6:af:60:2f: 22:48:4b:59:2d:03:18:81:d5:78:da:ac:23:cf:55: 39:bb:c7:a2:2d:f2:7a:73:b2:66:c5:1c:bf:20:59: c4:ae:c4:01:f5:eb:68:a2:d8:93:b1:04:f2:0e:ee: 9a:5f:b9:4b:b6:6b:c6:fa:a3:c9:9a:d0:36:39:db: ba:8d:1f:ff:1e:74:69:f8:9e:de:1a:d7:b5:2e:c5: 27:5b:5d:fa:8c:6e:e9:ac:79:e5:dd:a5:77:ff:1a: ec:b7:b7:49:6b:f2:69:ad:6a:1f:37:1b:f5:77:d6: c1:57:0f:f9:69:03:8c:1c:7d Exponent: 65537 (0x10001) - snip -
まずは、Subjectの内容がCSR作成の際に指定しているものかを確認します。
- 秘密鍵とCSRのペアが正しいかの確認
先ほどの秘密鍵とCSRの内容を確認した際に表示される、modules(CSRの場合はModules)の内容が一致するかを確認します。
該当箇所だけを抜き出し、別のファイルに書き出して余計なスペースを削除し、diffコマンドで見分ければ早いでしょう。
一致していれば、その秘密鍵から作成したCSRであることがわかります。
認証局に申し込むSSL証明書はタダではないので、その作業には神経を使いますから、事前にきちんと確認を取っておいた方がよいでしょうね。
[PR]SSLサーバ証明書なら[ドメインキーパー]◆VeriSign/GlobalSign/他取り扱い
[PR]格安固定IPが【5分で発行】+【初期無料】+【2ヶ月無料体験】