Introduction
忘備録。
mTLS の検証をしている際、Windows からの Chrome では正しく https で通信できたのに、Safari から閲覧したら
証明書は標準に準拠していません (英語:certificate is not standards compliant))
というエラーが証明書の詳細に表示されてしまった。
How to resolve?
iOS 13 および macOS 10.15 における信頼済み証明書の要件 に答えがある。
- RSA 鍵を利用する TLS サーバ証明書および発行元の CA は、鍵長 2048 ビット以上の鍵を用いること
- TLS サーバ証明書および発行元の CA は、SHA-2 ファミリーのハッシュアルゴリズムを署名アルゴリズムを用いること
- TLS サーバ証明書は、証明書の SAN (Subject Alternative Name) 拡張領域にサーバの DNS 名を記述すること
- TLS サーバ証明書には ExtendedKeyUsage (EKU) 拡張領域を必ず含め、ここに id-kp-serverAuth OID を指定すること
- TLS サーバ証明書の有効期間は 825 日以下であること
- ただし、信頼済み証明書に関する今後の制限について に従えば、2020年9月1日 00:00 (GMT/UTCTLS) 以降に発行されたサーバ証明書は、有効期間が 398 日間を超えないものとする、とあるのでこちらに従ったほうが無難
自分の場合は、ExtendedKeyUsage が存在しなかったことと有効期限が10年だったことが原因だった。