Jasper Inc.

地方在住エンジニアのテック&ライフブログ

OpenSSLでCSRを作成する

CSR

サーバ証明書を発行するための署名要求(Certificate Signing Request)。公開鍵とその所有者情報、及び申請者が対応する秘密鍵を持っていることを示すために申請者の署名が記載されている。認証局は証明書にその所有者情報を署名することで、所有者の存在を証明する。

OpenSSL

SSL/TLS認証と暗号化通信の機能を提供するライブラリ。2024年7月時点でのLTS(Long Term Support)バージョンは3.0系で、サポートは2026年9月まで。多くのOSでインストール済み。

コマンド

### インストール、バージョン確認
$ openssl version
OpenSSL 3.3.0 9 Apr 2024 (Library: OpenSSL 3.3.0 9 Apr 2024)


### 秘密鍵とCSRを作成
# req: CSRや証明書を作成  
# -new: CSRを作成
# -newkey rsa:2048: 秘密鍵の種類とビット長を指定 
# -nodes: パスフレーズを非設定
# -keyout <秘密鍵名> -out <CSR名>: 秘密鍵とCSRのファイル名を指定
$ openssl req -new -newkey rsa:2048 -nodes -keyout server-cert.key -out server-cert.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]: # 以下、対話形式で必要情報を入力

### CSRの内容を確認
$ openssl req -text -noout -in server-cert.csr
Certificate Request:
    Data:
        Version: 1 (0x0)
        Subject: C=JP, ST=Hokkaido, L=Sapporo City, O=Jasper Inc., CN=jasperinc.net, emailAddress=*****
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
                # 以下、省略