証明書が信頼されない2

http://monqy.blogspot.com/2017/12/blog-post_23.html
の続き

証明書内の 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に「保護された通信」と認めてもらえた。