OpenSSL を用いて CSR を作成する方法

ウェブサーバーで SSL を利用するためには、サーバー証明書が必要です。

サーバー証明書の作成を行うには、まずは CSR (Certificate Signing Request, 証明書署名要求) を作成するのが第一歩です。

ウェブサーバーとして IIS を利用している場合は、通常は IIS マネージャーから作成します。

基本的な SSL の構成方法については、「IIS での基本的な SSL 設定方法と簡単な仕組み (Windows 2012編)」を参考にしてください。

また特に Windows の機能を用いて SHA-2 を使用した CSR を作成するには「Windows で SHA-2 を用いた CSR を作成する方法」をみてください。

ここでは OpenSSL を利用して CSR を作成する手順を説明します。

OpenSSL を用いて CSR を作成する方法

秘密鍵を作成し、それから CSR を作成するには次のように、openssl genrsa と openssl req を利用できます。

$ openssl genrsa -out foo.key.pem 2048
$ openssl req -sha256 -new -key foo.key.pem -out foo.csr.pem

また秘密鍵の作成と CSR の作成を同時に行う場合には、次のように -newkey オプションを指定します。また、 アルゴリズムとキー長は -newkey に続けて rsa:2048 のように指定できます。

コマンド例は次のようになります。

$ openssl req -config openssl.cnf -sha256 -new -newkey rsa:2048 -keyout foo.key.pem -out foo.csr.pem
Generating a 2048 bit RSA private key
................................................+++
.......................................+++
writing new private key to 'foo.key.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.
-----
Country Name (2 letter code) [US]:US
State or Province Name [California]:California
Locality Name [Torrance]:Torrance
Organization Name []:My Org
Organizational Unit Name []:My OU
Common Name []:foo.com
Email Address []:bar@foo.com
$ 

ここでは設定ファイル (openssl.cnf) を指定しています。これによって、上記の中で国名などのデフォルト値が設定されています。 企業内などで決まった値を設定したい場合などは既定値を設定しておくと、複数回実施するときに便利でしょう。

CSR を OpenSSL で処理してサーバー証明書を発行する方法については、次の資料を参考にしてください。

» 「OpenSSL を用いて自前の証明機関でサーバー証明書を発行する

ここまでお読みいただき、誠にありがとうございます。SNS 等でこの記事をシェアしていただけますと、大変励みになります。どうぞよろしくお願いします。

© 2024 Web/DB プログラミング徹底解説