文書の表示以前のリビジョンバックリンク文書の先頭へ この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。 ====== OpenSSL によるプライベート CA の構築 ====== ===== パッケージインストール ===== <WRAP color_term> <WRAP color_command><html><pre> <b class=GRN>$</b> <b class=HIY>sudo</b> dnf install openssl </pre></html></WRAP> <WRAP color_result><html><pre> メタデータの期限切れの最終確認: 0:26:53 時間前の 2023年05月15日 08時55分29秒 に実施しました。 依存関係が解決しました。 ============================================================================================================== パッケージ アーキテクチャー バージョン リポジトリー サイズ ============================================================================================================== インストール: <b class=GRN>openssl </b> x86_64 1:3.0.8-2.fc38 fedora 1.0 M トランザクションの概要 ============================================================================================================== インストール 1 パッケージ ダウンロードサイズの合計: 1.0 M インストール後のサイズ: 1.6 M これでよろしいですか? [y/N]: y パッケージのダウンロード: openssl-3.0.8-2.fc38.x86_64.rpm 629 kB/s | 1.0 MB 00:01 -------------------------------------------------------------------------------------------------------------- 合計 395 kB/s | 1.0 MB 00:02 トランザクションの確認を実行中 トランザクションの確認に成功しました。 トランザクションのテストを実行中 トランザクションのテストに成功しました。 トランザクションを実行中 準備 : 1/1 インストール中 : openssl-1:3.0.8-2.fc38.x86_64 1/1 scriptletの実行中: openssl-1:3.0.8-2.fc38.x86_64 1/1 検証 : openssl-1:3.0.8-2.fc38.x86_64 1/1 インストール済み: openssl-1:3.0.8-2.fc38.x86_64 完了しました! </pre></html></WRAP> </WRAP> ===== ディレクトリとファイルの作成 ===== <code> $ sudo mkdir -p /etc/pki/mgcCA/{certs,client,crl,newcerts,private} $ sudo touch /etc/pki/mgcCA/{index.txt,index.txt.attr,serial} $ sudo bash -c "echo '01' > /etc/pki/mgcCA/serial" </code> ==== CA のディレクトリとファイル ==== <code> $ ll /etc/pki/mgcCA/ drwxr-xr-x 1 root root 0 2月 11 11:26 certs drwxr-xr-x 1 root root 0 2月 11 11:26 client drwxr-xr-x 1 root root 0 2月 11 11:26 crl -rw-r--r-- 1 root root 0 2月 11 11:27 index.txt -rw-r--r-- 1 root root 0 2月 11 11:27 index.txt.attr drwxr-xr-x 1 root root 0 2月 11 11:26 newcerts drwxr-xr-x 1 root root 0 2月 11 11:26 private -rw-r--r-- 1 root root 3 2月 11 11:27 serial </code> <html> <style> .col1 { width: 196px; } </style> </html> ^ ディレクトリ ^ 説明 ^ ファイル ^ 説明 ^ | certs | 証明書保管用 | index.txt | newcerts ディレクトリ内に保管される証明書の\\ 通番(nn)と識別名DN(Distinguished Name)との対応表 | | client | クライアント CSR、証明書、秘密鍵、PKCS#12 フォーマットのファイルのバックアップ用 | index.txt.attr | index.txtにて管理する通番に重複を許すかどうかの設定\\ unique_subject = yes : 重複を許さない(デフォルト)\\ unique_subject = no : 重複を許す | | crl | 失効リスト(Certificate Revocation List)保管用 | serial | 次に発行する証明書の通番(nn) | | newcerts | 新規に発行した証明書保管用 | | | | private | CAの秘密鍵保管用 | | | ===== デフォルトのユーザー情報を設定 ===== 証明書作成の際に入力の手間を省くために、デフォルト値を設定しておく。\\ \\ 設定ファイルをコピーする。 <code> $ sudo cp /etc/pki/tls/openssl.cnf /etc/pki/mgcCA/ </code> \\ 設定ファイルを編集する。 <code> $ sudo vi /etc/pki/mgcCA/openssl.cnf </code> <code diff> [ CA_default ] dir = /etc/pki/mgcCA # 認証局ディレクトリパス default_days = 36500 # 証明書の有効期限は100年 [ req ] default_bits = 2048 default_md = sha256 [ req_distinguished_name ] countryName_default = JP # 国コード stateOrProvinceName_default = Hokkaido Pref. # 都道府県 localityName_default = Sapporo City # 市町村区 # 会社名 or ドメイン名(行末の#がコメントとして扱われない、' が無視されるので注意) 0.organizationName_default = Monster's Garage Co.,Ltd. organizationalUnitName_default = - # 組織部門名 emailAddress_default = domain-admin@monsters-g.com # 管理者メールアドレス </code> openssl.cnf をコピーして、認証局(ca)、サーバー(server)、クライアント(client)用の設定ファイルを準備する。 <WRAP prewrap 100%> <code> $ sudo bash -c 'd=/etc/pki/mgcCA; for f in $d/openssl-mgc-{ca,server,client}.cnf; do cp $d/openssl.cnf $f; done' </code> </WRAP> ===== プライベート認証局 CA の秘密鍵と証明書の作成 ===== ==== 作成ファイル ==== ^ ファイル ^ 説明 ^ | private/cakey.pem | CA 秘密鍵 | | cacert.pem | CA 証明書 | | mgc_ca_cert.der | CA 証明書(DER形式) | ==== CA の秘密鍵と証明書の作成 ==== openssl-mgc-ca.cnf(認証局用設定ファイル)を編集する。 <code> $ sudo vi /etc/pki/mgcCA/openssl-mgc-ca.cnf </code> <code ini> [ usr_cert ] basicConstraints=CA:TRUE # CA証明書 [ v3_ca ] # nsCertType = sslCA, emailCA nsCertType = sslCA, emailCA # SSL認証局、電子メール認証局 </code> CA の秘密鍵と証明書を作成する。 <WRAP prewrap 100%> <code> $ sudo openssl req -new -config /etc/pki/mgcCA/openssl-mgc-ca.cnf -x509 -days 36500 -keyout /etc/pki/mgcCA/private/cakey.pem -out /etc/pki/mgcCA/cacert.pem </code> </WRAP> <WRAP prewrap 100%> <code> Generating a RSA private key .................................................+++++ ..................................................................................+++++ writing new private key to '/etc/pki/mgcCA/private/cakey.pem' Enter PEM pass phrase: # プライベート認証局のパスフレーズを入力 Verifying - Enter PEM pass phrase: # プライベート認証局の確認用パスフレーズを入力 ----- 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) [JP]: # Enter を入力 State or Province Name (full name) [Hokkaido Pref.]: # Enter を入力 Locality Name (eg, city) [Sapporo City]: # Enter を入力 Organization Name (eg, company) [Monsters Garage Co.,Ltd.]:Monster's Garage Co.,Ltd. # 会社名 or ドメイン名を入力 Organizational Unit Name (eg, section) [-]: # Enter を入力 Common Name (eg, your name or your server's hostname) []:Monster's Garage CA # CA名称 or ホスト名を入力 Email Address [domain-admin@monsters-g.com]: # Enter を入力 </code> </WRAP> CA証明書の確認。 <code> $ openssl x509 -in /etc/pki/mgcCA/cacert.pem -text -noout </code> <WRAP prewrap 100%> <code> Certificate: Data: Version: 3 (0x2) Serial Number: 46:fa:04:8a:29:79:6e:68:cd:9f:45:54:be:42:5b:ef:4f:8f:54:4c Signature Algorithm: sha256WithRSAEncryption Issuer: C = JP, ST = Hokkaido Pref., L = Sapporo City, O = "Monster's Garage Co.,Ltd.", OU = -, CN = Monster's Garage CA, emailAddress = domain-admin@monsters-g.com Validity Not Before: Feb 10 14:33:39 2019 GMT Not After : Jan 17 14:33:39 2119 GMT Subject: C = JP, ST = Hokkaido Pref., L = Sapporo City, O = "Monster's Garage Co.,Ltd.", OU = -, CN = Monster's Garage CA, emailAddress = domain-admin@monsters-g.com Subject Public Key Info: Public Key Algorithm: rsaEncryption RSA Public-Key: (2048 bit) Modulus: 00:dd:7e:eb:e7:ee:3c:f9:d8:58:0c:03:70:a2:96: d6:97:7c:5a:31:6c:23:a8:93:b6:5b:21:99:31:21: ca:3c:0e:21:d6:5b:85:09:66:54:c1:ef:db:89:a8: f5:dc:8c:a2:5c:b2:b5:37:a1:69:80:1a:86:0d:92: 96:cb:22:47:a6:a6:ff:be:48:fc:f5:ac:02:bf:8c: 8a:0b:e0:84:32:f5:78:c1:67:bd:f6:5a:05:70:eb: 50:97:1b:19:8d:2a:62:59:30:9e:fe:cc:65:8f:94: a1:aa:8f:39:df:b4:be:46:73:0c:5e:94:df:6a:62: 82:ba:6b:74:66:db:80:7c:9c:9c:58:aa:6a:0f:f9: 04:47:c1:3f:e0:05:eb:31:da:f6:f0:a8:b7:48:e0: d8:16:42:17:86:49:36:d6:b1:72:ff:ba:18:08:ae: 01:71:41:b4:ba:e5:d7:ca:68:c4:64:0b:22:43:55: fc:b6:bb:43:39:d4:51:83:39:a4:40:37:00:0f:9f: 2b:dd:f0:48:1b:3c:67:c3:df:e6:89:11:fb:cd:37: c9:62:07:44:bb:e6:5f:7c:de:6f:5a:1e:61:b9:fa: 92:14:44:44:47:5b:8a:41:a8:d2:4a:02:18:a9:d2: cc:ed:a2:1b:f1:15:10:86:23:7d:bf:78:ee:fa:c0: bd:a3 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Subject Key Identifier: 75:0E:6F:10:D2:10:CF:F2:CF:6E:20:12:C7:AE:25:70:00:F0:CD:65 X509v3 Authority Key Identifier: keyid:75:0E:6F:10:D2:10:CF:F2:CF:6E:20:12:C7:AE:25:70:00:F0:CD:65 X509v3 Basic Constraints: critical CA:TRUE Netscape Cert Type: SSL CA, S/MIME CA Signature Algorithm: sha256WithRSAEncryption 15:19:19:52:db:b6:bb:54:fd:94:1c:58:2f:28:8c:53:81:8d: ed:b1:5d:0e:f1:fe:c6:ec:ae:88:ab:b6:e2:13:40:07:78:2f: 75:4b:ee:5f:77:a5:1f:55:b4:c3:25:fb:a6:02:3e:4d:3c:71: b6:2a:f9:d0:bf:75:dd:13:97:22:2b:b4:8a:aa:5c:c6:27:b7: af:4f:17:49:04:98:81:4b:55:14:3c:20:2c:86:74:75:47:d5: 59:34:09:ab:02:a5:22:97:bf:5f:d9:e1:84:e3:68:18:93:c9: fd:df:1b:02:c7:96:93:52:2e:f1:8b:a5:1d:e8:d6:32:52:62: 5f:1b:63:aa:a3:39:75:8e:82:1e:06:46:f4:a6:1b:b9:3f:db: 88:78:9f:db:4c:f0:5d:ef:62:1b:37:37:63:31:1d:54:44:ff: 04:a7:13:3b:82:af:e4:f2:46:de:ff:56:dc:d8:cc:86:7e:51: 5a:69:5a:17:2c:4c:ee:38:3b:3b:3f:f0:30:1f:d5:7b:4c:d0: 2e:27:3f:0d:cb:a7:0f:83:f9:18:68:b2:af:c9:9b:a0:ec:13: 80:13:26:0b:af:25:75:5a:71:fa:6b:20:36:d7:da:09:b3:4c: de:60:68:02:24:43:59:cf:8a:0f:26:1f:71:de:a4:f4:78:44: 90:bb:e5:7d </code> </WRAP> CA のカレントディレクトリの private/ に CA 秘密鍵とカレントディレクトリにCA 証明書が作成される。 <code> $ ll /etc/pki/mgcCA/private/ -rw------- 1 root root 1854 2月 11 11:40 cakey.pem # CA 秘密鍵 $ ll /etc/pki/mgcCA/ -rw-r--r-- 1 root root 1586 2月 11 11:40 cacert.pem # CA 証明書 </code> ==== CA 証明書を DER 形式へ変換 ==== DER(Distinguished Encoding Rules) 形式は Windows OS で証明書や秘密鍵をインポートするのに使えるフォーマットである。\\ ここでは PEM 形式の CA 証明書を DER 形式に変換する。\\ <WRAP prewrap 100%> <code> $ sudo openssl x509 -inform pem -outform der -in /etc/pki/mgcCA/cacert.pem -out /etc/pki/mgcCA/mgc_ca_cert.der </code> </WRAP> CAのカレントディレクトリにCA 証明書(DER形式)が作成される。 <code> $ ll /etc/pki/mgcCA/ -rw-r--r-- 1 root root 1126 2月 11 09:40 mgc_ca_cert.der # CA 証明書(DER形式) </code> ===== サーバー証明書の作成 ===== ==== 作成ファイル ==== ^ ファイル ^ 説明 ^ | serverkey.pem | サーバー秘密鍵 | | serverreq.csr | サーバー CSR | | servercert.crt | サーバー証明書 | | serverkey-nopwd.pem | サーバー秘密鍵(パスフレーズなし) | | san.ext | SAN 追加設定ファイルを作成 | ==== サーバー CSR(Certificate Signing Request) の作成 ==== サーバー CSR は、パブリック認証局(Verisignなど)やプライベート認証局に対するサーバー証明書の署名要求である。\\ 認証局に署名して貰うことによって、証明書として利用できるようになる。\\ \\ openssl-mgc-server.cnf(サーバー用設定ファイル)を編集する。\\ <code> $ sudo vi /etc/pki/mgcCA/openssl-mgc-server.cnf </code> <code ini> [ usr_cert ] basicConstraints=CA:FALSE # CA証明書以外 nsCertType = server # サーバー証明書 </code> \\ サーバー CSR(Certificate Signing Request) を作成する。\\ <WRAP prewrap 100%> <code> $ sudo openssl req -new -config /etc/pki/mgcCA/openssl-mgc-server.cnf \ -addext 'subjectAltName=DNS:localhost,DNS:*.tomoyan.net' \ -keyout /etc/pki/mgcCA/serverkey.pem -out /etc/pki/mgcCA/serverreq.csr </code> </WRAP> <WRAP prewrap 100%> <code> Generating a RSA private key ...................................+++++ ......................................+++++ writing new private key to '/etc/pki/mgcCA/serverkey.pem' Enter PEM pass phrase: # パスフレーズを入力 Verifying - Enter PEM pass phrase: # 確認用パスフレーズを入力 ----- 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) [JP]: # Enter を入力 State or Province Name (full name) [Hokkaido Pref.]: # Enter を入力 Locality Name (eg, city) [Sapporo City]: # Enter を入力 Organization Name (eg, company) [Monsters Garage Co.,Ltd.]:Monster's Garage Co.,Ltd. # 会社名 or ドメイン名を入力 Organizational Unit Name (eg, section) [-]: # Enter を入力 Common Name (eg, your name or your server's hostname) []:tomoyan.net # Web サーバーで利用する場合はドメイン名を入力 Email Address [domain-admin@monsters-g.com]:domain-admin@tomoyan.net # 管理者メールアドレスを入力 Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: # Enter を入力 An optional company name []: # Enter を入力 </code> </WRAP> \\ CAのカレントディレクトリにサーバー秘密鍵とサーバー CSR(証明書署名要求)が作成される。 <code bash> $ ll /etc/pki/mgcCA/ -rw------- 1 root root 1854 2月 10 23:57 serverkey.pem # サーバー秘密鍵 -rw-r--r-- 1 root root 1106 2月 11 00:03 serverreq.csr # サーバー CSR(証明書署名要求) </code>**※サーバー CSR は認証局に渡して署名して貰うことで証明書として利用できるようになる。\\ 秘密キーは証明書をサーバーで利用する際に必要になるので大事に保管しておくこと。**\\ \\ サーバー CSR の内容を確認する。<code> $ openssl req -in /etc/pki/mgcCA/serverreq.csr -text -noout </code> <WRAP prewrap 100%> <code bash> Certificate Request: Data: Version: 1 (0x0) Subject: C = JP, ST = Hokkaido Pref., L = Sapporo City, O = "Monster's Garage Co.,Ltd.", OU = -, CN = tomoyan.net, emailAddress = domain-admin@tomoyan.net Subject Public Key Info: Public Key Algorithm: rsaEncryption RSA Public-Key: (2048 bit) Modulus: 00:ad:8b:53:f7:40:38:70:8b:cb:b1:12:e0:55:77: ~省略~ Exponent: 65537 (0x10001) Attributes: Requested Extensions: X509v3 Subject Alternative Name: DNS:localhost, DNS:*.tomoyan.net Signature Algorithm: sha256WithRSAEncryption 89:2e:52:e2:cd:cb:d5:77:6a:05:73:32:6d:67:bf:73:09:17: ~省略~ </code> </WRAP> ==== プライベート認証局でサーバー CSR に署名する(サーバー証明書作成) ==== 証明書作成の手前で追加設定ファイルを作成する。\\ <code> $ sudo vi /etc/pki/mgcCA/san.ext </code> <file autoconf /etc/pki/mgcCA/san.ext> basicConstraints=CA:FALSE # CA証明書以外 nsCertType=server # サーバー証明書 nsComment="OpenSSL Generated Certificate" subjectKeyIdentifier=hash authorityKeyIdentifier=keyid,issuer subjectAltName=DNS:localhost,DNS:*.tomoyan.net </file> サーバー CSR(Certificate Signing Request) に認証局で署名する。\\ <WRAP prewrap 100%> <code> $ sudo openssl ca -config /etc/pki/mgcCA/openssl-mgc-server.cnf -keyfile /etc/pki/mgcCA/private/cakey.pem -in /etc/pki/mgcCA/serverreq.csr -out /etc/pki/mgcCA/servercert.crt -extfile /etc/pki/mgcCA/san.ext </code> </WRAP> <WRAP prewrap 100%> <code> Using configuration from /etc/pki/mgcCA/openssl-mgc-server.cnf Enter pass phrase for /etc/pki/mgcCA/private/cakey.pem: # プライベート認証局のパスフレーズを入力 Check that the request matches the signature Signature ok Certificate Details: Serial Number: 10 (0xa) Validity Not Before: Feb 16 11:33:35 2019 GMT Not After : Jan 23 11:33:35 2119 GMT Subject: countryName = JP stateOrProvinceName = Hokkaido Pref. organizationName = Monster's Garage Co.,Ltd. organizationalUnitName = - commonName = localhost, *.tomoyan.net emailAddress = domain-admin@tomoyan.net X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Cert Type: SSL Server Netscape Comment: OpenSSL Generated Certificate X509v3 Subject Key Identifier: 4B:2D:69:69:2E:6C:6B:9B:33:CE:68:52:87:CE:A9:B5:42:6E:C5:AA X509v3 Authority Key Identifier: keyid:F1:11:89:F3:AC:9E:C5:F4:01:B9:1A:96:17:A8:67:2D:13:6D:80:03 X509v3 Subject Alternative Name: DNS:localhost, DNS:*.tomoyan.net Certificate is to be certified until Jan 23 11:33:35 2119 GMT (36500 days) Sign the certificate? [y/n]:y # y と Enter を入力 1 out of 1 certificate requests certified, commit? [y/n]y # y と Enter を入力 Write out database with 1 new entries Data Base Updated </code> </WRAP> カレントディレクトリにサーバー証明書が作成される。 <code bash> $ ll /etc/pki/mgcCA/ -rw-r--r-- 1 root root 4890 2月 11 00:46 servercert.crt # サーバー証明書 </code> ==== サーバー証明書の内容確認 ==== <WRAP prewrap 100%> <code> $ sudo openssl x509 -in /etc/pki/mgcCA/servercert.crt -text -noout Certificate: Data: Version: 3 (0x2) Serial Number: 10 (0xa) Signature Algorithm: sha256WithRSAEncryption Issuer: C = JP, ST = Hokkaido Pref., L = Sapporo City, O = "Monster's Garage Co.,Ltd.", OU = -, CN = Monster's Garage CA, emailAddress = domain-admin@monsters-g.com Validity Not Before: Feb 16 11:33:35 2019 GMT Not After : Jan 23 11:33:35 2119 GMT Subject: C = JP, ST = Hokkaido Pref., O = "Monster's Garage Co.,Ltd.", OU = -, CN = "localhost, *.tomoyan.net", emailAddress = domain-admin@tomoyan.net Subject Public Key Info: Public Key Algorithm: rsaEncryption RSA Public-Key: (2048 bit) Modulus: 00:dc:a3:7e:df:9e:aa:17:f7:0e:a0:40:4c:24:f1: 91:4e:ce:7f:2b:da:91:78:f9:b4:67:10:fe:63:6f: 〜省略〜 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Cert Type: SSL Server Netscape Comment: OpenSSL Generated Certificate X509v3 Subject Key Identifier: 4B:2D:69:69:2E:6C:6B:9B:33:CE:68:52:87:CE:A9:B5:42:6E:C5:AA X509v3 Authority Key Identifier: keyid:F1:11:89:F3:AC:9E:C5:F4:01:B9:1A:96:17:A8:67:2D:13:6D:80:03 X509v3 Subject Alternative Name: DNS:localhost, DNS:*.tomoyan.net Signature Algorithm: sha256WithRSAEncryption ba:ca:e4:01:53:cc:16:08:d7:81:cd:0e:86:ec:79:ce:0f:0d: 16:e4:b4:f0:df:6b:a8:b1:1d:bf:a2:f7:41:89:d3:18:4a:eb: 〜省略〜 </code> </WRAP> ==== サーバーで利用する秘密鍵のパスフレーズ除去 ==== 秘密キーを Web サーバーなどで利用する際にパスフレーズを聞かれないようにするには、サーバー証明書の秘密キーのパスフレーズを除去しておく。\\ 秘密キーのパスフレーズを除去する。 <WRAP prewrap 100%> <code> $ sudo openssl rsa -in /etc/pki/mgcCA/serverkey.pem -out /etc/pki/mgcCA/serverkey-nopwd.pem Enter pass phrase for /etc/pki/mgcCA/serverkey.pem: # 秘密キーのパスフレーズを入力 writing RSA key </code> </WRAP> カレントディレクトリにパスフレーズを除去した秘密キーが作成される。 <code bash> $ ll /etc/pki/mgcCA/ -rw------- 1 root root 1675 2月 11 01:08 serverkey-nopwd.pem # 秘密鍵(パスフレーズなし) </code> ==== サーバー CSR、証明書、秘密鍵のファイルのバックアップ ==== 必要に応じて作成したサーバー CSR、証明書、秘密鍵のファイルをわかりやすいように認証局(CA)の管理下のディレクトリにバックアップしておく。\\ <WRAP prewrap 100%> <code> $ sudo mv /etc/pki/mgcCA/serverreq.csr /etc/pki/mgcCA/certs/www.tomoyan.net.csr $ sudo mv /etc/pki/mgcCA/servercert.crt /etc/pki/mgcCA/certs/www.tomoyan.net.crt $ sudo mv /etc/pki/mgcCA/serverkey.pem /etc/pki/mgcCA/certs/www.tomoyan.net.pem $ sudo mv /etc/pki/mgcCA/serverkey-nopwd.pem /etc/pki/mgcCA/certs/www.tomoyan.net-nopwd.pem $ sudo mv /etc/pki/mgcCA/san.ext /etc/pki/mgcCA/certs/www.tomoyan.net_san.ext </code> </WRAP> ===== クライアント証明書の作成 ===== ==== 作成ファイル ==== ^ ファイル ^ 説明 ^ | clientkey.pem | クライアント秘密鍵 | | clientreq.csr | クライアント CSR | | clientcert.crt | クライアント証明書 | | tomoyan-client.p12 | 個人情報交換ファイル | ==== クライアント CSR(Certificate Signing Request) の作成 ==== クライアント CSR は、パブリック認証局(Verisignなど)やプライベート認証局に対するクライアント証明書の署名要求である。\\ 認証局に署名して貰うことによって、クライアント証明書として利用できるようになる。\\ \\ openssl-mgc-client.cnf(クライアント用設定ファイル)を編集する。\\ <code> $ sudo vi /etc/pki/mgcCA/openssl-mgc-client.cnf </code> <WRAP prewrap 100%> <code ini> [ usr_cert ] basicConstraints=CA:FALSE # CA証明書以外 nsCertType = client, email, objsign # クライアント、電子メール、オブジェクトサイン証明書 </code> </WRAP> \\ クライアント CSR(Certificate Signing Request) を作成する。\\ <WRAP prewrap 100%> <code> $ sudo openssl req -new -config /etc/pki/mgcCA/openssl-mgc-client.cnf -keyout /etc/pki/mgcCA/clientkey.pem -out /etc/pki/mgcCA/clientreq.csr </code> </WRAP> **注意: 標準では Country Name, State of Province Name, Organization name は署名する CA のものと同一でなければならない。** <WRAP prewrap 100%> <code> Generating a RSA private key ...+++++ ........+++++ writing new private key to '/etc/pki/mgcCA/clientkey.pem' Enter PEM pass phrase: # パスフレーズを入力 Verifying - Enter PEM pass phrase: # 確認用パスフレーズを入力 ----- 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) [JP]: # Enter を入力 State or Province Name (full name) [Hokkaido Pref.]: # Enter を入力 Locality Name (eg, city) [Sapporo City]: # Enter を入力 Organization Name (eg, company) [Monsters Garage Co.,Ltd.]:Monster's Garage Co.,Ltd. # 会社名 or ドメイン名を入力 Organizational Unit Name (eg, section) [-]: # Enter を入力 Common Name (eg, your name or your server's hostname) []:TomoYan # 利用者名を入力 Email Address [domain-admin@monsters-g.com]:tomoyan@tomoyan.net # 利用者メールアドレスを入力 Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: # Enter を入力 An optional company name []: # Enter を入力 </code> </WRAP> \\ CAのカレントディレクトリにクライアント秘密鍵とクライアント CSR(証明書署名要求)が作成される。 <code bash> $ ll /etc/pki/mgcCA/ -rw------- 1 root root 1854 2月 11 01:35 clientkey.pem # クライアント秘密鍵 -rw-r--r-- 1 root root 1086 2月 11 01:42 clientreq.csr # クライアント CSR(証明書署名要求) </code>**※クライアント CSR は認証局に渡して署名して貰うことで証明書として利用できるようになる。\\ 秘密鍵は証明書をクライアントで利用する際に必要になるので大事に保管しておくこと。**\\ \\ クライアント CSR の内容を確認する。<code> $ openssl req -in /etc/pki/mgcCA/clientreq.csr -text -noout </code> <WRAP prewrap 100%> <code bash> Certificate Request: Data: Version: 1 (0x0) Subject: C = JP, ST = Hokkaido Pref., L = Sapporo City, O = "Monster's Garage Co.,Ltd.", OU = -, CN = TomoYan, emailAddress = tomoyan@tomoyan.net Subject Public Key Info: Public Key Algorithm: rsaEncryption RSA Public-Key: (2048 bit) Modulus: 00:cf:38:92:c9:c1:7e:68:1d:27:64:d5:9c:94:a6: 98:eb:b5:90:4e:eb:ee:d4:5e:6f:5d:01:79:3b:57: f9:96:33:94:30:46:f4:bc:b1:5b:50:95:a0:28:eb: ee:0a:4a:aa:be:7d:b9:58:8f:e5:e5:c2:0e:58:6c: ec:0e:21:a9:5d:1f:34:1f:d7:e1:0a:42:8c:a0:63: 4a:ee:fd:94:f3:36:d6:1f:bd:4b:43:82:45:a5:ea: 32:09:11:0c:48:cf:1c:1d:b6:e8:5b:99:d6:30:ce: 77:d6:b3:2f:0c:04:ec:1d:cc:1a:27:c1:ef:07:6e: 3f:f4:7d:0e:c3:33:a6:db:73:6c:34:32:df:6d:57: f3:27:c8:43:c3:01:d3:62:60:66:c7:4e:99:86:a5: 9b:96:b3:53:75:b8:58:a7:d8:9c:b5:83:80:39:0a: 2e:4b:b8:91:ea:b3:d7:20:45:4d:77:61:9f:e4:6d: 46:c6:36:12:c7:e0:54:a2:fb:60:24:57:d5:a1:e3: e4:83:92:6e:46:f6:1f:68:43:e5:29:93:be:5c:c9: 4a:16:c3:59:b3:96:3d:e8:aa:c6:fd:33:1f:54:7a: 14:8c:74:0f:32:c2:31:57:56:e7:76:c4:bc:e9:f1: 1c:93:99:88:6a:0b:46:53:e0:34:21:ad:37:58:80: e3:39 Exponent: 65537 (0x10001) Attributes: a0:00 Signature Algorithm: sha256WithRSAEncryption 7b:ba:9b:c7:e4:2a:ff:89:fa:36:49:68:aa:22:9e:f6:e1:9e: ~省略~ </code> </WRAP> ==== プライベート認証局でクライアント CSR に署名する(クライアント証明書作成) ==== クライアント CSR(Certificate Signing Request) に認証局で署名する。\\ <WRAP prewrap 100%> <code> $ sudo openssl ca -config /etc/pki/mgcCA/openssl-mgc-client.cnf -keyfile /etc/pki/mgcCA/private/cakey.pem -in /etc/pki/mgcCA/clientreq.csr -out /etc/pki/mgcCA/clientcert.crt </code> </WRAP> <WRAP prewrap 100%> <code> Using configuration from /etc/pki/mgcCA/openssl-mgc-client.cnf Enter pass phrase for /etc/pki/mgcCA/private/cakey.pem: # プライベート認証局のパスフレーズを入力 Check that the request matches the signature Signature ok Certificate Details: Serial Number: 3 (0x3) Validity Not Before: Feb 10 17:03:11 2019 GMT Not After : Jan 17 17:03:11 2119 GMT Subject: countryName = JP stateOrProvinceName = Hokkaido Pref. organizationName = Monster's Garage Co.,Ltd. organizationalUnitName = - commonName = TomoYan emailAddress = tomoyan@tomoyan.net X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Cert Type: SSL Client, S/MIME, Object Signing Netscape Comment: OpenSSL Generated Certificate X509v3 Subject Key Identifier: D8:60:5D:77:BF:C1:DA:DE:CC:94:00:0F:F8:29:5E:B0:58:3B:B3:1D X509v3 Authority Key Identifier: keyid:75:0E:6F:10:D2:10:CF:F2:CF:6E:20:12:C7:AE:25:70:00:F0:CD:65 Certificate is to be certified until Jan 17 17:03:11 2119 GMT (36500 days) Sign the certificate? [y/n]:y # y と Enter を入力 1 out of 1 certificate requests certified, commit? [y/n]y # y と Enter を入力 Write out database with 1 new entries Data Base Updated </code> </WRAP> カレントディレクトリにクライアント証明書が作成される。 <code bash> $ ll /etc/pki/mgcCA/ -rw-r--r-- 1 root root 4886 2月 11 02:03 clientcert.crt # クライアント証明書 </code> ==== クライアント証明書の内容確認 ==== <WRAP prewrap 100%> <code> $ sudo openssl x509 -in /etc/pki/mgcCA/clientcert.crt -text -noout Certificate: Data: Version: 3 (0x2) Serial Number: 2 (0x2) Signature Algorithm: sha256WithRSAEncryption Issuer: C = JP, ST = Hokkaido Pref., L = Sapporo City, O = "Monster's Garage Co.,Ltd.", OU = -, CN = Monster's Garage CA, emailAddress = domain-admin@monsters-g.com Validity Not Before: Feb 11 11:49:24 2019 GMT Not After : Jan 18 11:49:24 2119 GMT Subject: C = JP, ST = Hokkaido Pref., O = "Monster's Garage Co.,Ltd.", OU = -, CN = TomoYan, emailAddress = tomoyan@tomoyan.net Subject Public Key Info: Public Key Algorithm: rsaEncryption RSA Public-Key: (2048 bit) Modulus: 00:a9:41:68:6e:14:15:71:5f:87:ee:8b:1d:07:f1: 3b:64:64:e7:35:2f:93:4d:fe:05:1c:03:2a:1a:e5: 〜省略〜 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Cert Type: SSL Client, S/MIME, Object Signing Netscape Comment: OpenSSL Generated Certificate X509v3 Subject Key Identifier: 8A:DC:B8:F5:6D:E7:16:69:3B:0A:C7:4B:9D:BE:2D:4D:7C:F5:14:79 X509v3 Authority Key Identifier: keyid:F1:11:89:F3:AC:9E:C5:F4:01:B9:1A:96:17:A8:67:2D:13:6D:80:03 Signature Algorithm: sha256WithRSAEncryption 1c:d2:61:ab:26:74:cf:9f:8d:96:28:ff:6d:22:4b:33:00:46: e8:09:c1:75:07:a2:ec:aa:a9:31:6d:1d:63:80:da:26:87:01: 〜省略〜 </code> </WRAP> ==== クライアント証明書、秘密鍵から PKCS#12 個人情報交換ファイルの作成 ==== PKCS #12 は Personal Information Exchange Syntax Standard という規格で定義された個人情報交換ファイルです。\\ クライアントでは、証明書と秘密鍵を1つのファイルにまとめた PKCS#12 フォーマットが主に用いられます。\\ ここでは、クライアント証明書、秘密鍵から PKCS#12 フォーマットの p12 ファイルを作成する。\\ <WRAP prewrap 100%> <code> $ sudo openssl pkcs12 -export -in /etc/pki/mgcCA/clientcert.crt -inkey /etc/pki/mgcCA/clientkey.pem -out /etc/pki/mgcCA/tomoyan-client.p12 -name "TomoYan PKCS#12" </code> </WRAP> <code> Enter pass phrase for /etc/pki/mgcCA/clientkey.pem: # クライアント秘密鍵のパスフレーズ Enter Export Password: # p12 ファイルを読み込むためのパスフレーズを入力 Verifying - Enter Export Password: # 確認用パスフレーズを入力 </code> CAのカレントディレクトリに PKCS#12 フォーマットのファイルが作成される。 <code> $ ll /etc/pki/mgcCA/ -rw------- 1 root root 2804 2月 11 07:48 tomoyan-client.p12 # 個人情報交換ファイル </code> ==== クライアント CSR、証明書、秘密鍵、PKCS#12 個人情報交換ファイルのバックアップ ==== 必要に応じて作成したクライアント CSR、証明書、秘密鍵、PKCS#12 個人情報交換ファイルをわかりやすいように認証局(CA)の管理下のディレクトリにバックアップしておく。\\ <code> $ sudo mkdir /etc/pki/mgcCA/client/{certs,private} $ sudo mv /etc/pki/mgcCA/clientreq.csr /etc/pki/mgcCA/client/certs/tomoyan.csr $ sudo mv /etc/pki/mgcCA/clientcert.crt /etc/pki/mgcCA/client/certs/tomoyan.crt $ sudo mv /etc/pki/mgcCA/clientkey.pem /etc/pki/mgcCA/client/private/tomoyan.pem $ sudo mv /etc/pki/mgcCA/tomoyan-client.p12 /etc/pki/mgcCA/client/private/tomoyan.p12 </code> ===== トラブルシューティング ===== ==== openssl ca で CSR に署名する時に以下のエラーが発生する ==== openssl ca のバグである可能性が高いが、**-config** で **-keyfile** は分かっているはずなのに **-keyfile** オプションを省略すると、ファイル名: **'-out'** を **fopen** しようとする。\\ **-out** オプションをファイル名と勘違いしているので仕様では無いはずである。\\ <WRAP prewrap 100%> <code> 140354393380672:error:02001002:system library:fopen:No such file or directory:crypto/bio/bss_file.c:72:fopen('-out','r') 140354393380672:error:2006D080:BIO routines:BIO_new_file:no such file:crypto/bio/bss_file.c:79: </code> </WRAP> 以下の様にきちんと **-keyfile** オプションで CA の秘密鍵を指定するとエラーを回避できる。\\ <WRAP prewrap 100%> <code> $ sudo openssl ca -config /etc/pki/mgcCA/openssl-mgc-server.cnf -keyfile /etc/pki/mgcCA/private/cakey.pem -in /etc/pki/mgcCA/serverreq.csr -out /etc/pki/mgcCA/servercert.crt </code> </WRAP> ==== ブラウザーで SSL のサーバー証明書が NET::ERR_CERT_COMMON_NAME_INVALID になる ==== Chrome 58 以降では、Common Name を評価しなくなったようである。\\ X509v3 Subject Alternative Name(SAN): DNS: で判定するようである。\\ CSR を作成する際に openssl.cnf の [ req ] -> req_extensions = v3_req -> [ v3_req ] -> subjectAltName = @alt_names -> [ alt_names ] -> DNS.1, DNS.2 ... を指定する必要があるが、CSR を作成するたびに openssl.cnf を修正するのは面倒である。\\ OpenSSL Version 1.1.1 より CSR 作成時のコマンド **openssl req** に **-addext** が指定出来るようになった。\\ <code> $ sudo openssl req -new -config /etc/pki/mgcCA/openssl-mgc-server.cnf \ -addext 'subjectAltName=DNS:localhost,DNS:*.tomoyan.net' \ -keyout /etc/pki/mgcCA/serverkey.pem -out /etc/pki/mgcCA/serverreq.csr </code> <WRAP prewrap 100%> <code> $ openssl req -in /etc/pki/mgcCA/serverreq.csr -text -noout Certificate Request: Data: Version: 1 (0x0) Subject: C = JP, ST = Hokkaido Pref., L = Sapporo City, O = "Monster's Garage Co.,Ltd.", OU = -, CN = tomoyan.net, emailAddress = domain-admin@monsters-g.com Subject Public Key Info: Public Key Algorithm: rsaEncryption RSA Public-Key: (2048 bit) Modulus: 00:ad:8b:53:f7:40:38:70:8b:cb:b1:12:e0:55:77: 〜省略〜 Exponent: 65537 (0x10001) Attributes: Requested Extensions: X509v3 Subject Alternative Name: DNS:localhost, DNS:*.tomoyan.net Signature Algorithm: sha256WithRSAEncryption 89:2e:52:e2:cd:cb:d5:77:6a:05:73:32:6d:67:bf:73:09:17: 〜省略〜 </code> </WRAP> <code> Requested Extensions: X509v3 Subject Alternative Name: DNS:localhost, DNS:*.tomoyan.net </code> X509v3 Subject Alternative Name: DNS: が指定出来ている。\\ ==== openssl ca で ERROR:There is already a certificate for が発生する ==== <WRAP prewrap 100%> <code> ERROR:There is already a certificate for /C=JP/ST=Hokkaido Pref./O=Monster's Garage Co.,Ltd./OU=-/CN=localhost, *.tomoyan.net/emailAddress=domain-admin@monsters-g.com The matching entry has the following details Type :Valid Expires on :21190123110413Z Serial Number :09 File name :unknown Subject Name :/C=JP/ST=Hokkaido Pref./O=Monster's Garage Co.,Ltd./OU=-/CN=localhost, *.tomoyan.net/emailAddress=domain-admin@monsters-g.com </code> </WRAP> 初期設定では重複して登録できないので revoke 証明書の失効をする。 <code> $ sudo openssl ca -config /etc/pki/mgcCA/openssl-mgc-ca.cnf -revoke /etc/pki/mgcCA/newcerts/09.pem Using configuration from /etc/pki/mgcCA/openssl-mgc-ca.cnf Enter pass phrase for /etc/pki/mgcCA/private/cakey.pem: # パスフレーズを入力 Revoking Certificate 09. Data Base Updated </code> ===== 参考文献 ===== [[http://server-setting.info/centos/private-ca-cert.html|プライベート認証局の証明書、サーバー証明書、クライアント証明書の作成方法について | レンタルサーバー・自宅サーバー設定・構築のヒント]]\\ [[http://www.atmarkit.co.jp/ait/articles/1602/05/news039.html|Windows上で、証明書や秘密鍵をPEM形式に変換してエクスポートする (1/2):Tech TIPS - @IT]]\\ [[https://kaede.jp/2018/06/10191854.html|【OpenSSL】SANでDNS情報を付与した証明書を作成する - かえでBlog]]\\ \\ [[https://qiita.com/kunichiko/items/12cbccaadcbf41c72735|RSA鍵、証明書のファイルフォーマットについて - Qiita]]\\ [[https://glorificatio.org/archives/2914|証明書や秘密鍵のフォーマットを変換することだけを書いた | Divide et impera]]\\ ==== 付録 ==== === 利用可能なコマンド一覧 === <WRAP color_term> <WRAP color_command><html><pre> <b class=GRN>$</b> <b class=HIY>openssl</b> version <b class=HIK>--options</b> <b class=DiYE>...</b> </pre></html></WRAP> <WRAP color_result><html><pre> OpenSSL 3.0.8 7 Feb 2023 (Library: OpenSSL 3.0.8 7 Feb 2023) </pre></html></WRAP> </WRAP> 標準コマンド、メッセージ ダイジェスト コマンド(非推奨)、暗号化コマンド(非推奨)の一覧。\\ <WRAP color_term> <WRAP color_command><html><pre> <b class=GRN>$</b> <b class=HIY>openssl</b> list {<b class=HIK>-standard-commands,-digest-commands,-cipher-commands</b>} </pre></html></WRAP> <WRAP color_result><html><pre> asn1parse ca ciphers cmp cms crl crl2pkcs7 dgst dhparam dsa dsaparam ec ecparam enc engine errstr fipsinstall gendsa genpkey genrsa help info kdf list mac nseq ocsp passwd pkcs12 pkcs7 pkcs8 pkey pkeyparam pkeyutl prime rand rehash req rsa rsautl s_client s_server s_time sess_id smime speed spkac srp storeutl ts verify version x509 blake2b512 blake2s256 md5 rmd160 sha1 sha224 sha256 sha3-224 sha3-256 sha3-384 sha3-512 sha384 sha512 sha512-224 sha512-256 shake128 shake256 sm3 aes-128-cbc aes-128-ecb aes-192-cbc aes-192-ecb aes-256-cbc aes-256-ecb aria-128-cbc aria-128-cfb aria-128-cfb1 aria-128-cfb8 aria-128-ctr aria-128-ecb aria-128-ofb aria-192-cbc aria-192-cfb aria-192-cfb1 aria-192-cfb8 aria-192-ctr aria-192-ecb aria-192-ofb aria-256-cbc aria-256-cfb aria-256-cfb1 aria-256-cfb8 aria-256-ctr aria-256-ecb aria-256-ofb camellia-128-cbc camellia-128-ecb camellia-192-cbc camellia-192-ecb camellia-256-cbc camellia-256-ecb des-ede des-ede-cbc des-ede-cfb des-ede-ofb des-ede3 des-ede3-cbc des-ede3-cfb des-ede3-ofb des3 </pre></html></WRAP> </WRAP> 暗号スイートの説明の一覧表示。\\ <WRAP color_term> <WRAP color_command><html><pre> <b class=GRN>$</b> <b class=HIY>openssl</b> ciphers <b class=HIK>-v</b> </pre></html></WRAP> <WRAP color_result_long><html><pre> TLS_AES_256_GCM_SHA384 TLSv1.3 Kx=any Au=any Enc=AESGCM(256) Mac=AEAD TLS_CHACHA20_POLY1305_SHA256 TLSv1.3 Kx=any Au=any Enc=CHACHA20/POLY1305(256) Mac=AEAD TLS_AES_128_GCM_SHA256 TLSv1.3 Kx=any Au=any Enc=AESGCM(128) Mac=AEAD TLS_AES_128_CCM_SHA256 TLSv1.3 Kx=any Au=any Enc=AESCCM(128) Mac=AEAD ECDHE-ECDSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH Au=ECDSA Enc=AESGCM(256) Mac=AEAD ECDHE-RSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH Au=RSA Enc=AESGCM(256) Mac=AEAD ECDHE-ECDSA-CHACHA20-POLY1305 TLSv1.2 Kx=ECDH Au=ECDSA Enc=CHACHA20/POLY1305(256) Mac=AEAD ECDHE-RSA-CHACHA20-POLY1305 TLSv1.2 Kx=ECDH Au=RSA Enc=CHACHA20/POLY1305(256) Mac=AEAD ECDHE-ECDSA-AES256-CCM TLSv1.2 Kx=ECDH Au=ECDSA Enc=AESCCM(256) Mac=AEAD ECDHE-ECDSA-AES128-GCM-SHA256 TLSv1.2 Kx=ECDH Au=ECDSA Enc=AESGCM(128) Mac=AEAD ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 Kx=ECDH Au=RSA Enc=AESGCM(128) Mac=AEAD ECDHE-ECDSA-AES128-CCM TLSv1.2 Kx=ECDH Au=ECDSA Enc=AESCCM(128) Mac=AEAD ECDHE-ECDSA-AES128-SHA256 TLSv1.2 Kx=ECDH Au=ECDSA Enc=AES(128) Mac=SHA256 ECDHE-RSA-AES128-SHA256 TLSv1.2 Kx=ECDH Au=RSA Enc=AES(128) Mac=SHA256 ECDHE-ECDSA-AES256-SHA TLSv1 Kx=ECDH Au=ECDSA Enc=AES(256) Mac=SHA1 ECDHE-RSA-AES256-SHA TLSv1 Kx=ECDH Au=RSA Enc=AES(256) Mac=SHA1 ECDHE-ECDSA-AES128-SHA TLSv1 Kx=ECDH Au=ECDSA Enc=AES(128) Mac=SHA1 ECDHE-RSA-AES128-SHA TLSv1 Kx=ECDH Au=RSA Enc=AES(128) Mac=SHA1 AES256-GCM-SHA384 TLSv1.2 Kx=RSA Au=RSA Enc=AESGCM(256) Mac=AEAD AES256-CCM TLSv1.2 Kx=RSA Au=RSA Enc=AESCCM(256) Mac=AEAD AES128-GCM-SHA256 TLSv1.2 Kx=RSA Au=RSA Enc=AESGCM(128) Mac=AEAD AES128-CCM TLSv1.2 Kx=RSA Au=RSA Enc=AESCCM(128) Mac=AEAD AES256-SHA256 TLSv1.2 Kx=RSA Au=RSA Enc=AES(256) Mac=SHA256 AES128-SHA256 TLSv1.2 Kx=RSA Au=RSA Enc=AES(128) Mac=SHA256 AES256-SHA SSLv3 Kx=RSA Au=RSA Enc=AES(256) Mac=SHA1 AES128-SHA SSLv3 Kx=RSA Au=RSA Enc=AES(128) Mac=SHA1 DHE-RSA-AES256-GCM-SHA384 TLSv1.2 Kx=DH Au=RSA Enc=AESGCM(256) Mac=AEAD DHE-RSA-CHACHA20-POLY1305 TLSv1.2 Kx=DH Au=RSA Enc=CHACHA20/POLY1305(256) Mac=AEAD DHE-RSA-AES256-CCM TLSv1.2 Kx=DH Au=RSA Enc=AESCCM(256) Mac=AEAD DHE-RSA-AES128-GCM-SHA256 TLSv1.2 Kx=DH Au=RSA Enc=AESGCM(128) Mac=AEAD DHE-RSA-AES128-CCM TLSv1.2 Kx=DH Au=RSA Enc=AESCCM(128) Mac=AEAD DHE-RSA-AES256-SHA256 TLSv1.2 Kx=DH Au=RSA Enc=AES(256) Mac=SHA256 DHE-RSA-AES128-SHA256 TLSv1.2 Kx=DH Au=RSA Enc=AES(128) Mac=SHA256 DHE-RSA-AES256-SHA SSLv3 Kx=DH Au=RSA Enc=AES(256) Mac=SHA1 DHE-RSA-AES128-SHA SSLv3 Kx=DH Au=RSA Enc=AES(128) Mac=SHA1 PSK-AES256-GCM-SHA384 TLSv1.2 Kx=PSK Au=PSK Enc=AESGCM(256) Mac=AEAD PSK-CHACHA20-POLY1305 TLSv1.2 Kx=PSK Au=PSK Enc=CHACHA20/POLY1305(256) Mac=AEAD PSK-AES256-CCM TLSv1.2 Kx=PSK Au=PSK Enc=AESCCM(256) Mac=AEAD PSK-AES128-GCM-SHA256 TLSv1.2 Kx=PSK Au=PSK Enc=AESGCM(128) Mac=AEAD PSK-AES128-CCM TLSv1.2 Kx=PSK Au=PSK Enc=AESCCM(128) Mac=AEAD PSK-AES256-CBC-SHA SSLv3 Kx=PSK Au=PSK Enc=AES(256) Mac=SHA1 PSK-AES128-CBC-SHA256 TLSv1 Kx=PSK Au=PSK Enc=AES(128) Mac=SHA256 PSK-AES128-CBC-SHA SSLv3 Kx=PSK Au=PSK Enc=AES(128) Mac=SHA1 DHE-PSK-AES256-GCM-SHA384 TLSv1.2 Kx=DHEPSK Au=PSK Enc=AESGCM(256) Mac=AEAD DHE-PSK-CHACHA20-POLY1305 TLSv1.2 Kx=DHEPSK Au=PSK Enc=CHACHA20/POLY1305(256) Mac=AEAD DHE-PSK-AES256-CCM TLSv1.2 Kx=DHEPSK Au=PSK Enc=AESCCM(256) Mac=AEAD DHE-PSK-AES128-GCM-SHA256 TLSv1.2 Kx=DHEPSK Au=PSK Enc=AESGCM(128) Mac=AEAD DHE-PSK-AES128-CCM TLSv1.2 Kx=DHEPSK Au=PSK Enc=AESCCM(128) Mac=AEAD DHE-PSK-AES256-CBC-SHA SSLv3 Kx=DHEPSK Au=PSK Enc=AES(256) Mac=SHA1 DHE-PSK-AES128-CBC-SHA256 TLSv1 Kx=DHEPSK Au=PSK Enc=AES(128) Mac=SHA256 DHE-PSK-AES128-CBC-SHA SSLv3 Kx=DHEPSK Au=PSK Enc=AES(128) Mac=SHA1 ECDHE-PSK-CHACHA20-POLY1305 TLSv1.2 Kx=ECDHEPSK Au=PSK Enc=CHACHA20/POLY1305(256) Mac=AEAD ECDHE-PSK-AES256-CBC-SHA TLSv1 Kx=ECDHEPSK Au=PSK Enc=AES(256) Mac=SHA1 ECDHE-PSK-AES128-CBC-SHA256 TLSv1 Kx=ECDHEPSK Au=PSK Enc=AES(128) Mac=SHA256 ECDHE-PSK-AES128-CBC-SHA TLSv1 Kx=ECDHEPSK Au=PSK Enc=AES(128) Mac=SHA1 RSA-PSK-AES256-GCM-SHA384 TLSv1.2 Kx=RSAPSK Au=RSA Enc=AESGCM(256) Mac=AEAD RSA-PSK-CHACHA20-POLY1305 TLSv1.2 Kx=RSAPSK Au=RSA Enc=CHACHA20/POLY1305(256) Mac=AEAD RSA-PSK-AES128-GCM-SHA256 TLSv1.2 Kx=RSAPSK Au=RSA Enc=AESGCM(128) Mac=AEAD RSA-PSK-AES256-CBC-SHA SSLv3 Kx=RSAPSK Au=RSA Enc=AES(256) Mac=SHA1 RSA-PSK-AES128-CBC-SHA256 TLSv1 Kx=RSAPSK Au=RSA Enc=AES(128) Mac=SHA256 RSA-PSK-AES128-CBC-SHA SSLv3 Kx=RSAPSK Au=RSA Enc=AES(128) Mac=SHA1 </pre></html></WRAP> </WRAP> linux/openssl_private_ca.txt 最終更新: 2023/05/15 11:05by ともやん