の続き
証明書内の cnを信頼せず、別のところを見ているらしい。
簡単に偽装できるからだろう。
以下をやってサーバ証明書への署名をすれば対応できると聞いて
やってみたが............
/etc/pki/tls/openssl.confを修正
[ req ] req_extensions = v3_req [ usr_cert ] authorityKeyIdentifier=keyid,issuer:always [ v3_req ] subjectAltName = @alt_names [alt_names] DNS.1 = example.com DNS.2 = *.example.com
今度は
NET::ERR_CERT_WEAK_SIGNATURE_ALGORITHM
sha1になってる。
いろいろやったが、結局以下で。
vi ./openssl.cnf #以下のセクションのパラメータを設定 [ CA_default ] default_md = sha256 [ req ] default_bits = 2048 default_md = sha256 [ usr_cert ] basicConstraints=CA:TRUE nsCertType = server [ v3_ca ] nsCertType = sslCA, emailCA
これをやって、CAを作り直す。
CAを作りなおす場合、
/etc/pki/CA/private/cakey.pemがあると
-newcaをやっても動かないので消す。
あと、いったんできたファイルは全部消しておく。
そんで、サーバの秘密鍵作成、CSR作成、署名をやりなおす。
apacheを再起動、CA証明書は、cacert.pemの最後の
-----BEGIN CERTIFICATE-----
から
-----END CERTIFICATE-----
までをテキストにコピーして拡張子 .crtにすればインポートできる。
chromeもいったん終了して再起動。
晴れてchromeに「保護された通信」と認めてもらえた。