Open1
自己署名証明書 (CA) の作成と、クライアント証明書の作成
自己署名証明書 (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 証明書作成
-
秘密鍵を作成する。
% openssl genpkey -algorithm rsa:2048 -aes-128-cbc -out ca.key
-
genpkey
- 秘密鍵を生成する -
-algorithm rsa:2048
- 秘密鍵アルゴリズムの指定。ed25519 の場合はed25519
-
-aes-128-cbc
- 秘密鍵の暗号化。パスフレーズを設定する。
-
-
自己署名証明書を作成する。
% 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 作成
-
秘密鍵を作成する。
% openssl genpkey -algorithm rsa:2048 -aes-128-cbc -out client.key
-
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
-
証明書の情報を色々見る
% openssl x509 -serial -dates -subject -issuer -email -alias -in client.crt
-
Organization Name は CA とクライアントで異なるものにする。