OpenSSLを使った証明書生成手順

弊社TCP/IPプロトコルスタック「μNet3」に関するご質問
返信する
アバター
eForce技術担当
記事: 193
登録日時: 2014年4月24日(木) 14:18

OpenSSLを使った証明書生成手順

投稿記事 by eForce技術担当 » 2017年9月21日(木) 12:33

OpenSSLを使った証明書生成手順 (RSA編)

OpenSSLで証明書を作成するにはいくつかやり方がありますが、基本的には以下の2つの手順で行います。
またこの方法はサーバの証明書、クライアントの証明書、また私設のCAの証明書に関しても同じです。
  1. 証明書要求(CSR)作成
  2. CSRを署名して証明書を発行
1-1.CSRを作成するにはまず鍵交換用の秘密鍵(RSA)を生成します。
openssl genrsa -out my_rsa.key 2048
(-aes128や-des3オプションでパスフレーズ付きの秘密鍵となる)

1-2.次にreqコマンドでCSRを出力します。
openssl req -new -key my_rsa.key -out my_csr.csr
(-newkeyオプションで秘密鍵生成も一緒に行う)

2-1.my_rsa.keyで署名する場合(自己署名)
openssl x509 -in my_csr.csr -req -signkey my_rsa.key -out my_crt.crt -days 365

2-2.私設CAで署名する(openssl caコマンド)場合

まずは私設CAを作成する必要があります。
CA(認証局)をつくるには、CA.shスクリプト(/usr/lib/ssl/misc or /usr/ssl/misc)を-newcaオプション付きで実行します。
途中秘密鍵ファイル(cakey.pem)に暗号をかけるためのパスワードを聞かれるので任意のパスワードを入力します。(以下の3か所)
  • Enter PEM pass phrase:

    Verifying - Enter PEM pass phrase:
    :
    :

    Enter pass phrase for ./demoCA/private/./cakey.pem:
入力が終了すると、demoCAフォルダに認証局用のファイルが生成されます。
次に1.で作成したCSRファイルをdemoCA/フォルダと同じ階層に格納し、caコマンドで署名します。
  • openssl ca -in my_csr.csr
このときもcakey.pemに対するパスワードを聞かれます。
またcaコマンドではopenssl.cnfのポリシー(# For the CA policy)に従いますので、
(たとえば主体者と発行者でcountryNameが同じでなければならないなど・・・)、適宜変更して下さい。
  • Enter pass phrase for ./demoCA/private/cakey.pem:
正常に入力が完了すると、demoCA/newcerts/にCAによって署名された証明書が出力されます。
my_rsa.key:秘密鍵として使用します。
emoCA/newcerts/xxxx.crt 証明書として使用します。

返信する