Open1

自己署名証明書 (CA) の作成と、クライアント証明書の作成

SUWA ShigekiSUWA Shigeki

自己署名証明書 (CA) の作成と、クライアント証明書の作成

openssl のバージョンを確認する。

% openssl version
OpenSSL 3.0.3 3 May 2022 (Library: OpenSSL 3.0.3 3 May 2022)

openssl コマンドのマニュアル: https://github.com/openssl/openssl#manual-pages

CA 証明書作成

  1. 秘密鍵を作成する。

    % openssl genpkey -algorithm rsa:2048 -aes-128-cbc -out ca.key
    
    • genpkey - 秘密鍵を生成する
    • -algorithm rsa:2048 - 秘密鍵アルゴリズムの指定。ed25519 の場合は ed25519
    • -aes-128-cbc - 秘密鍵の暗号化。パスフレーズを設定する。
  2. 自己署名証明書を作成する。

    % openssl req -x509 -key ca.key -days 365 -out ca.crt
    
    • req - CSR または証明書を生成する
    • -x509 - 証明書を生成する
    • -days 365 - 有効期限を 365 日間に設定する

    証明書の情報を入力する。

    Country Name (2 letter code) [AU]:JP
    State or Province Name (full name) [Some-State]:Tokyo
    Locality Name (eg, city) []:XXX
    Organization Name (eg, company) [Internet Widgits Pty Ltd]:FooBar CA
    Organizational Unit Name (eg, section) []:
    Common Name (e.g. server FQDN or YOUR name) []:ca.foobar.example
    Email Address []:ca@foobar.example
    

クライアント CSR 作成

  1. 秘密鍵を作成する。

    % openssl genpkey -algorithm rsa:2048 -aes-128-cbc -out client.key
    
  2. CSR を作成する。

    % openssl req -new -key client.key -out client.csr
    
    • -new - CSR を生成する

    証明書の情報を入力する。

    Country Name (2 letter code) [AU]:JP
    State or Province Name (full name) [Some-State]:Tokyo
    Locality Name (eg, city) []:XXX
    Organization Name (eg, company) [Internet Widgits Pty Ltd]:FooBar Client
    Organizational Unit Name (eg, section) []:
    Common Name (e.g. server FQDN or YOUR name) []:client.foobar.example
    Email Address []:client@foobar.example
    
    Please enter the following 'extra' attributes
    to be sent with your certificate request
    A challenge password []:
    An optional company name []:
    

署名

% openssl x509 -req -in client.csr -CA ca.crt -CAkey ca.key -days 90 -out client.crt

PKCS#12 の作成

% openssl pkcs12 -export -in client.crt -inkey client.key -out client.p12

Tips

参考