xxxcaqui.log

ツッコミお待ちしています

SSL用のCSRを作成する

SSLサーバ証明書を申請するときに必要になるCSR(Certificate Signing Request)を作成します。*1

環境

  • Amazon Linux AMI 2013.03.1

CSRって?

簡単に言うと、サーバ証明書の申し込み用紙です。

サーバ証明書は「このドメインはこのサーバで合ってるよー!」ということを証明するためのものなので、申請にあたっては

の2点が必要になります。

これらの2点(とその他諸々の情報)を所定の形式に従ってまとめたものがCSRです。

具体的には次のような形式になります。

-----BEGIN CERTIFICATE REQUEST-----
MIIBnTCCAQYCAQAwXTELMAkGA1UEBhMCU0cxETAPBgNVBAoTCE0yQ3J5cHRvMRIw
EAYDVQQDEwlsb2NhbGhvc3QxJzAlBgkqhkiG9w0BCQEWGGFkbWluQHNlcnZlci5l
eGFtcGxlLmRvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAr1nYY1Qrll1r
uB/FqlCRrr5nvupdIN+3wF7q915tvEQoc74bnu6b8IbbGRMhzdzmvQ4SzFfVEAuM
MuTHeybPq5th7YDrTNizKKxOBnqE2KYuX9X22A1Kh49soJJFg6kPb9MUgiZBiMlv
tb7K3CHfgw5WagWnLl8Lb+ccvKZZl+8CAwEAAaAAMA0GCSqGSIb3DQEBBAUAA4GB
AHpoRp5YS55CZpy+wdigQEwjL/wSluvo+WjtpvP0YoBMJu4VMKeZi405R7o8oEwi
PdlrrliKNknFmHKIaCKTLRcU59ScA6ADEIWUzqmUzP5Cs6jrSRo3NKfg1bd09D1K
9rsQkRc9Urv9mRBIsredGnYECNeRaK5R1yzpOowninXC
-----END CERTIFICATE REQUEST-----

「-----BEGIN CERTIFICATE REQUEST-----」や「-----END CERTIFICATE REQUEST-----」も含めてCSRなので、認証局への申請時には注意してください。

CSRの作成

OpenSSLのインストール

OpenSSLは既にインストールされていることが多いと思いますが、入っていない場合はここでインストールします。

$ sudo yum install -y openssl-devel

プライベートキーの作成

$ openssl genrsa -out foo.pem 2048

-outで指定したファイル名の秘密鍵が生成されます。

$ ls
foo.pem

なお、ビット長(上記コマンド例では2048)は認証局によって異なります。*2

ここで作成した秘密鍵を認証局から発行されるサーバ証明書と一緒に後で使用します。

CSR本体の作成

$ openssl req -new -key foo.pem -out foo.csr

Country Name (2 letter code) [XX]:JP
State or Province Name (full name) []:Kanagawa
Locality Name (eg, city) [Default City]:Yokohama
Organization Name (eg, company) [Default Company Ltd]:Foo
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your hostname) []:example.com
Email Address []:example@example.com

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
$ ls
foo.csr  foo.pem

-outで指定したファイル名のCSRが生成されているはずです。

*1:予想はしていましたが、CSRググるとCorporate Social Responsibilityばっかり出てきて鬱陶しいです。

*2:ただ、今だとほとんどの認証局が2048bitだとは思います。