浏览器返回SSL_ERROR_BAD_CERT_DOMAIN的问题排查与解决
浏览器访问Zyxel AP WebGUI时出现SSL_ERROR_BAD_CERT_DOMAIN错误的解决方法
我使用OpenSSL搭建了根CA和中间CA,在Zyxel AP上生成CSR,通过中间CA签名后导入服务器证书,同时将完整证书链(根CA+中间CA)上传至AP。在Ubuntu系统中,我把完整证书链安装到系统证书库(/usr/local/share/ca-certificates)并执行update-ca-certificates命令,还将证书导入到Firefox、Brave等浏览器的证书库中。但访问AP的WebGUI时,所有浏览器均返回SSL_ERROR_BAD_CERT_DOMAIN错误,不过用curl和OpenSSL测试时验证正常:
curl -vvI https://zyxel.home.arpa ALPN: offers h2 * ALPN: offers http/1.1 * CAfile: /etc/ssl/certs/ca-certificates.crt * CApath: none * TLSv1.3 (OUT), TLS handshake, Client hello (1): * TLSv1.3 (IN), TLS handshake, Server hello (2): * TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1): * TLSv1.3 (OUT), TLS handshake, Client hello (1): * TLSv1.3 (IN), TLS handshake, Server hello (2): * TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8): * TLSv1.3 (IN), TLS handshake, Certificate (11): * TLSv1.3 (IN), TLS handshake, CERT verify (15): * TLSv1.3 (IN), TLS handshake, Finished (20): * TLSv1.3 (OUT), TLS handshake, Finished (20): * SSL connection using TLSv1.3 / TLS_CHACHA20_POLY1305_SHA256 . . . SSL certificate verify ok. openssl s_client -CAfile ca-chain-bundle.cert.pem https://zyxel.home.arpa New, TLSv1.3, Cipher is TLS_CHACHA20_POLY1305_SHA256 Server public key is 2048 bit Secure Renegotiation IS NOT supported Compression: NONE Expansion: NONE No ALPN negotiated Early data was not sent Verify return code: 0 (ok)
编辑1:未指定CAfile时的测试结果:
openssl s_client -connect zyxel.home.arpa:443 . . verify error:num=20:unable to get local issuer certificate . verify error:num=21:unable to verify the first certificate .
编辑2:附上服务器证书和AP生成的CSR内容:
服务器证书:
Certificate: Data: Version: 3 (0x2) Serial Number: 37:5b:25:e6:31:1b:7e:f7:63:14:30:e1:b6:ca:d2:11:a2:83:44:1c Signature Algorithm: sha256WithRSAEncryption Issuer: C = DE, ST = Home, O = Home Inc., CN = Home Intermediate-CA, emailAddress = admin@home.sh Validity Not Before: Nov 22 20:20:47 2022 GMT Not After : Nov 22 20:20:47 2023 GMT Subject: CN = zyxel.home.arpa, C = DE, ST = Home, L = Home, O = Home Inc, OU = IT Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (2048 bit) Modulus: 00:aa:be:cf:97:ad:fd:da:1a:9b:c4:af:9a:07:ac: b7:08:bb:e3:eb:b8:d0:dc:fc:34:bf:8c:c8:5b:3f: 37:a7:20:7d:7e:eb:c9:e1:ce:c6:a8:84:2a:a3:35: 74:83:c9:62:94:ad:92:5b:c5:54:99:9e:14:c9:2b: 73:44:75:06:de:d4:dc:13:a6:0c:8c:b6:d9:84:e2: 1e:51:f8:2f:83:3c:62:95:ca:32:39:07:2b:81:41: f9:88:08:95:fb:f9:c2:10:f0:de:25:b6:e2:83:f0: f2:86:41:7d:5d:09:91:3b:04:b8:5f:74:b7:f5:2e: e8:fa:9b:f5:17:a7:ef:d1:45:ed:05:8e:f3:8e:c3: a1:96:42:9d:dd:ef:2f:03:81:97:b9:c5:df:9c:41: 3b:b6:9d:7b:09:a0:bf:ad:e8:6a:e2:05:ef:2b:fc: 67:4d:5a:dd:a4:ba:7b:58:a8:65:53:08:06:60:00: 08:85:12:34:31:9b:93:27:d2:35:75:00:f0:01:f5: 58:7f:1a:e5:1f:e5:08:8a:14:ca:c4:17:4d:90:ec: 30:7a:38:3e:ad:90:db:08:46:35:c4:6e:a7:8e:81: 77:eb:15:47:50:7e:d1:71:d5:09:38:64:c3:fa:08: 2a:31:a0:bd:87:0b:70:27:b3:42:fe:20:de:b1:be: 87:a9 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Cert Type: SSL Server Netscape Comment: OpenSSL Generated Server Certificate X509v3 Subject Key Identifier: F5:D6:9B:95:CA:2C:8E:41:92:5F:3E:3E:9C:D5:31:CE:6A:D0:F8:95 X509v3 Authority Key Identifier: keyid:25:0C:ED:3A:E1:A0:B9:86:A0:FB:43:9F:20:F0:F4:C0:5E:85:C4:D7 DirName:/C=DE/ST=Home/L=Home/O=Home Inc./CN=Home Root-CA/emailAddress=admin@home.sh serial:01 X509v3 Key Usage: critical Digital Signature, Key Encipherment X509v3 Extended Key Usage: TLS Web Server Authentication
AP生成的CSR:
Certificate Request: Data: Version: 1 (0x0) Subject: CN = zyxel.home.arpa, C = DE, ST = Home, L = Home, O = Home Inc, OU = IT Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (2048 bit) Modulus: 00:aa:be:cf:97:ad:fd:da:1a:9b:c4:af:9a:07:ac: b7:08:bb:e3:eb:b8:d0:dc:fc:34:bf:8c:c8:5b:3f: 37:a7:20:7d:7e:eb:c9:e1:ce:c6:a8:84:2a:a3:35: 74:83:c9:62:94:ad:92:5b:c5:54:99:9e:14:c9:2b: 73:44:75:06:de:d4:dc:13:a6:0c:8c:b6:d9:84:e2: 1e:51:f8:2f:83:3c:62:95:ca:32:39:07:2b:81:41: f9:88:08:95:fb:f9:c2:10:f0:de:25:b6:e2:83:f0: f2:86:41:7d:5d:09:91:3b:04:b8:5f:74:b7:f5:2e: e8:fa:9b:f5:17:a7:ef:d1:45:ed:05:8e:f3:8e:c3: a1:96:42:9d:dd:ef:2f:03:81:97:b9:c5:df:9c:41: 3b:b6:9d:7b:09:a0:bf:ad:e8:6a:e2:05:ef:2b:fc: 67:4d:5a:dd:a4:ba:7b:58:a8:65:53:08:06:60:00: 08:85:12:34:31:9b:93:27:d2:35:75:00:f0:01:f5: 58:7f:1a:e5:1f:e5:08:8a:14:ca:c4:17:4d:90:ec: 30:7a:38:3e:ad:90:db:08:46:35:c4:6e:a7:8e:81: 77:eb:15:47:50:7e:d1:71:d5:09:38:64:c3:fa:08: 2a:31:a0:bd:87:0b:70:27:b3:42:fe:20:de:b1:be: 87:a9 Exponent: 65537 (0x10001) Attributes: Netscape Comment :OpenSSL Generated Certificate Requested Extensions: X509v3 Subject Key Identifier: F5:D6:9B:95:CA:2C:8E:41:92:5F:3E:3E:9C:D5:31:CE:6A:D0:F8:95 X509v3 Key Usage: critical Digital Signature, Key Encipherment, Data Encipherment, Certificate Sign X509v3 Extended Key Usage: TLS Web Server Authentication, TLS Web Server Authentication X509v3 Subject Alternative Name: othername: UPN::zyxel.home.arpa, DNS:zyxel.home.arpa Signature Algorithm: sha512WithRSAEncryption Signature Value: 1b:04:05:e6:02:89:4d:1d:67:a4:bb:15:06:20:93:58:c3:2b: 72:3c:e0:39:cd:f0:ea:6e:3a:db:33:02:3e:fa:ca:67:ec:e4: 58:a5:cf:ad:c0:51:b1:bb:0d:22:3f:a5:fc:ac:d1:e9:90:d6: 71:71:5d:dc:56:f1:14:21:cb:a3:53:be:0a:32:43:8f:8a:74: 55:08:e3:1d:44:7d:72:f3:94:7f:1a:99:71:b7:97:be:a6:ff: a8:cf:95:f5:3b:c3:c6:6c:e3:ef:d9:39:8d:03:17:2e:15:2c: 92:ee:00:88:5f:23:21:a4:ac:27:c6:66:00:a5:5d:89:8d:f3: 87:43:34:35:16:e4:bd:72:38:ba:2c:27:f4:c9:08:22:aa:86: 21:6c:98:9f:4b:2b:7e:5e:6a:aa:5c:19:80:29:32:6d:4f:78: 1d:db:5b:1d:a1:bc:31:86:e9:65:af:ee:30:35:12:ce:d4:18: b1:06:57:e3:da:f6:63:b0:48:53:64:0a:4b:ca:2a:20:d6:5d: 90:1a:bf:af:bb:d3:18:e8:5e:42:2f:3f:c8:96:20:63:66:9e: 2e:b1:2a:fa:82:f6:ba:d0:d3:7f:e7:a5:5d:f5:3a:fb:a9:b0: 54:a5:0a:14:48:8a:37:1e:e8:32:6c:73:7d:4c:af:dc:21:bc: 24:60:9e:2c
解决方案
问题根源是签名服务器证书时,未在openssl.cnf中配置Subject Alt Name(主题备用名称)。添加以下配置后重新签名证书,浏览器的错误即可解决(感谢President James K. Polk的提示):
basicConstraints = CA:FALSE nsCertType = server nsComment = "OpenSSL Generated Server Certificate" subjectKeyIdentifier = hash authorityKeyIdentifier = keyid,issuer:always keyUsage = critical, digitalSignature, keyEncipherment extendedKeyUsage = serverAuth subjectAltName = @alt_names [alt_names] IP.1 = <AP的IP地址> DNS.1 = zyxel.home.arpa
内容的提问来源于stack exchange,提问作者sangul
相关产品推荐
相关产品推荐

