考え方†
- mvc (=kgb.hmuna.com) には公式なサーバー証明書を導入済み(上記など)
- mvc のログイン認証は local IP ゾーン(VPN 接続を含む)は認証なし、その他は One Time パスワード認証を要求
- これに加えクライアント認証を導入し、認証済クライアントはパスワード無しで接続できるようにしたい
- 発行済のサーバー証明書からクライアント証明書を発行する方法が無い(CoMoDo には別にクライアント認証オプションあり)
- 一方でオレオレ認証ベースでのクライアント証明書を発行する事例は多数参考記事がある
- (方針)クライアント証明書については、公式サーバー証明書とは別にオレオレ認証局で作り Apache2 に組み込んで動作確認する
- この考え方(=サーバー証明書とクライアント証明書は別の認証局を使う)で正しいことを CyberTrust に確認した。
オリジナルの Apache2 の設定†
# SSL Engine Switch:
# Enable/Disable SSL for this virtual host.
SSLEngine on
# SSL Cipher Suite:
# List the ciphers that the client is permitted to negotiate.
# See the mod_ssl documentation for a complete list.
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP
# Server Certificate:
SSLCertificateFile /etc/ssl/official5/kgb_hmuna_com.crt <---- これは KoMoDo から発行された証明書
# Server Private Key:
SSLCertificateKeyFile /etc/ssl/official5/kgb.hmuna.com.privatekey <---- これも KoMoDo から発行されたもの
# Server Certificate Chain:
# Apache 2.4.8 以降 SSLCertificateChainFile は無くなった? (らしいので無効にしてみる)
#SSLCertificateChainFile /etc/ssl/official4/kgb_hmuna_com.ca-bundle <---- これは使っていない
# 実験中(クライアント証明書)
# Client Certificate: (official CA (COMODO) to generate client certificate)
#SSLCACertificateFile /etc/ssl/private_CA/kgb_hmuna-client1.crt <---- このファイルはサーバー証明書に紐付いている、さて....
#SSLVerifyClient optional
再挑戦 2020-09 (/etc/ssl/private2_for_clientcertificate で作業)†
- openssl 設定ファイルでクライアント認証用の設定を記述したものを用意(openssl-ca.cnf とリネーム)
openssl-ca.cnf
munakata@mvc:/etc/ssl/private2_for_client_certificate$ diff openssl-ca.cnf ../openssl.cnf
73c73
< default_days = 3650 # how long to certify for
---
> default_days = 365 # how long to certify for
170c170
< basicConstraints=CA:TRUE
---
> basicConstraints=CA:FALSE
183d182
< nsCertType = sslCA, emailCA
217d215
< keyUsage = cRLSign, keyCertSign
CRT ファイル†
- &ref(): File not found: "" at page "HomeServer25";
クライアント証明書の作成†
JCAN 証明書†
参考 URL†