SSL証明書発行のため、社内でCSRを作成することがたびたびあるため、社内での手順をまとめました。
目次
実行環境
OpenSSLコマンドを使用するので、OpenSSLコマンドが実行できる環境を用意してください。
Macユーザ
Mac上で、ターミナルを開いてOpenSSLコマンドを実行できます。
Windowsユーザ
VMやWSLなどで用意したLinux上で、OpenSSLコマンドを実行するといいです。
CSR作成情報の準備
下記のようなCSRの作成に必要な情報を準備します。
以下は例です。
| 名前 | 値 | 
|---|---|
| コモンネーム(CN) | www.example.jp | 
| 組織単位名(OU) | XXXXXX | 
| 組織名(O) | XXXXXX | 
| 市町村名(L) | XXXXXX | 
| 都道府県名(S/ST) | Tokyo | 
| 国名(C) | JP | 
CSRの作成の準備
作業用のディレクトリを作成、移動します。
| 1 2 | $ mkdir ssl $ cd ssl | 
秘密鍵生成コマンド実行
key名を www.example.jp.key (わかりやすいようにドメイン名)として進めます。
| 1 | $ openssl genrsa -des3 -out www.example.jp.key 2048 | 
(root権限が必要であれば、 sudo で実行してください)
秘密鍵生成コマンド実行後のパスワード入力
上記コマンドを実行すると、下記のようにパスワードの入力するように表示されます。
パスワードはあとで使うので、ランダムな文字列を生成して控えておいてください。
| 1 2 3 4 5 6 | Generating RSA private key, 2048 bit long modulus ................+++ .................................................................+++ e is 65537 (0x10001) Enter pass phrase for www.example.jp.key: Verifying - Enter pass phrase for www.example.jp.key: | 
CSR生成コマンド実行
| 1 | $ openssl req -new -key www.example.jp.key -out www.example.jp.csr | 
上記実行すると、先程入力したパスワードを聞かれるので、パスワードを入力してください。
| 1 | Enter pass phrase for www.example.jp.key: | 
CSR作成情報の入力
下記のようにCSR作成に必要な情報が聞かれるので、入力していきます。
Country Nameの入力
国名(C)に該当する内容(ここではJP)を入力します。
| 1 2 3 4 5 6 7 8 | 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) []: | 
State or Province Nameの入力
都道府県名(S/ST)に該当する内容(ここではTokyo)を入力します。
| 1 | State or Province Name (full name) []: | 
Locality Nameの入力
市町村名(L)に該当する内容(ここではShibuya-ku)を入力します。
| 1 | Locality Name (eg, city) []: | 
Organization Nameの入力
組織名(O)に該当する内容(ここではXXXXXX)を入力します。
| 1 | Organization Name (eg, company) []: | 
Organizational Unit Nameの入力
組織単位名(OU)に該当する内容(ここではXXXXXX)を入力します。
| 1 | Organizational Unit Name (eg, section) []: | 
Organizational Unit Nameの入力
コモンネーム(CN)に該当する内容(ここではwww.example.jp)を入力します。
| 1 | Common Name (eg, fully qualified host name) []: | 
その他の入力
下記Email Address、A challenge passwordは何も入力せずEnterを押します。
(指示や情報があり、必要であれば入力してください。)
| 1 2 3 4 5 | Email Address []: Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: | 
パスワードなしの秘密鍵を作成
以下を実行し、パスワードなしの秘密鍵を生成しておきます。
| 1 2 | $ cp www.example.jp.key www.example.jp.org $ openssl rsa -in www.example.jp.key.org -out www.example.jp.key | 
確認
以上でCSRが生成完了します。下記のようにできていればOKです。
| 1 2 | $ ls www.example.jp.csr      www.example.jp.key      www.example.jp.key.org | 
以下のようになっていればOKです。
| 名前 | 用途 | 
|---|---|
| www.example.jp.csr | CSR | 
| www.example.jp.key | パスワードなしのkey | 
| www.example.jp.key.org | パスワードありのオリジナルkey | 
生成内容の確認
下記コマンドで生成内容を確認できます。
| 1 | $ openssl req -noout -text -in www.example.jp.csr | 
| 1 2 3 4 5 6 7 8 9 | Certificate Request:     Data:         Version: 0 (0x0)         Subject: C=JP, ST=Tokyo, L=Shibuya-ku, O=XXXXXX, OU=XXXXXX, CN=XXXXX         Subject Public Key Info:             Public Key Algorithm: rsaEncryption .. .. .. | 
 
