はじめに

実際の業務でCSRを作成する機会があり、普段使っているツールが
諸事情で使えなくなっていたのでMacターミナルで
CSRを作成した作業の備忘録になります。

事前準備

  • OpenSSLのインストール(Homebrew経由でインストール)
  • 秘密鍵
  • 秘密鍵のパスフレーズ(ある場合)
  • DN情報

 

1,秘密鍵の作成

OpenSSLはインストール済み

r-oyama1:csr_test r-oyama$ openssl version
OpenSSL 3.1.4 24 Oct 2023 (Library: OpenSSL 3.1.4 24 Oct 2023)
r-oyama1:csr_test r-oyama$

テスト用に秘密鍵を作成

openssl genrsa -out {$ビット長} {$秘密鍵のファイル名}

パスフレーズをつけたい場合は 「-aes256」などの暗号化アルゴリズムをオプションに加える

openssl genrsa -aes256 -out {$秘密鍵のファイル名}

実際に秘密鍵を作成 キー長は2048bitで作成

r-oyama1:csr_test r-oyama$ openssl genrsa -out r-oyama-test.pem.key 2048
r-oyama1:csr_test r-oyama$
r-oyama1:csr_test r-oyama$
r-oyama1:csr_test r-oyama$ openssl genrsa -aes256 -out r-oyama-test-pass.pem.key 2048
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
r-oyama1:csr_test r-oyama$
r-oyama1:csr_test r-oyama$ ls
r-oyama-test-pass.pem.key r-oyama-test.pem.key
r-oyama1:csr_test r-oyama$

2.作成した秘密鍵からCSRを作成

openssl req -new -key {$秘密鍵のファイル名} -out {$CSRのファイル名}

今回はDN情報がないので全て空白で入力
パスフレーズなしの場合

r-oyama1:csr_test r-oyama$ openssl req -new -key r-oyama-test.pem.key -out r-oyama-test.pem.key.csr
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) [AU]:                                                    #国コード  日本の場合はJP
State or Province Name (full name) [Some-State]:                        #都道府県
Locality Name (eg, city) []:                                                               #市区町村
Organization Name (eg, company) [Internet Widgits Pty Ltd]: #組織名
Organizational Unit Name (eg, section) []:                                   #部署名
Common Name (e.g. server FQDN or YOUR name) []: #コモンネーム
Email Address []: #メールアドレス

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:     #証明書を破棄するためのパスワード
An optional company name []: #会社名の略称
r-oyama1:csr_test r-oyama$
r-oyama1:csr_test r-oyama$

パスフレーズありの場合

r-oyama1:csr_test r-oyama$
r-oyama1:csr_test r-oyama$ openssl req -new -key r-oyama-test-pass.pem.key -out r-oyama-test-pass.pem.key.csr
Enter pass phrase for r-oyama-test-pass.pem.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) [AU]:
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:
Email Address []:

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
r-oyama1:csr_test r-oyama$
r-oyama1:csr_test r-oyama$
r-oyama1:csr_test r-oyama$
r-oyama1:csr_test r-oyama$
r-oyama1:csr_test r-oyama$ ls
r-oyama-test-pass.pem.key r-oyama-test-pass.pem.key.csr r-oyama-test.pem.key r-oyama-test.pem.key.csr
r-oyama1:csr_test r-oyama$

以上

あとは作成したCSRファイルを認証局に送って
SSLサーバ証明書への署名を申請すれば終わりです。
作成した鍵は安全な場所に保管するようにしてください