Google chrome ECC证书在Chrome中不起作用?
我正在尝试配置HAProxy以根据客户端的浏览器提供RSA或ECC证书。我最初试图配置ECC证书,但我注意到最新版本的Chrome不支持这些证书。想知道是否还有其他人有这个问题?我将OS X 10.11.4与以下版本一起使用:Google chrome ECC证书在Chrome中不起作用?,google-chrome,ssl,ssl-certificate,haproxy,Google Chrome,Ssl,Ssl Certificate,Haproxy,我正在尝试配置HAProxy以根据客户端的浏览器提供RSA或ECC证书。我最初试图配置ECC证书,但我注意到最新版本的Chrome不支持这些证书。想知道是否还有其他人有这个问题?我将OS X 10.11.4与以下版本一起使用: [root@haproxy-server]: /etc/haproxy # haproxy -vv HA-Proxy version 1.6.4 2016/03/13 Copyright 2000-2016 Willy Tarreau <willy@haproxy.
[root@haproxy-server]: /etc/haproxy # haproxy -vv
HA-Proxy version 1.6.4 2016/03/13
Copyright 2000-2016 Willy Tarreau <willy@haproxy.org>
Build options :
TARGET = linux2628
CPU = generic
CC = gcc
CFLAGS = -g -O2 -fPIE -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2
OPTIONS = USE_ZLIB=1 USE_REGPARM=1 USE_OPENSSL=1 USE_LUA=1 USE_PCRE=1
Default settings :
maxconn = 2000, bufsize = 16384, maxrewrite = 1024, maxpollevents = 200
Encrypted password support via crypt(3): yes
Built with zlib version : 1.2.8
Compression algorithms supported : identity("identity"), deflate("deflate"), raw-deflate("deflate"), gzip("gzip")
Built with OpenSSL version : OpenSSL 1.0.2g 1 Mar 2016
Running on OpenSSL version : OpenSSL 1.0.2g-fips 1 Mar 2016
OpenSSL library supports TLS extensions : yes
OpenSSL library supports SNI : yes
OpenSSL library supports prefer-server-ciphers : yes
Built with PCRE version : 8.38 2015-11-23
PCRE library supports JIT : no (USE_PCRE_JIT not set)
Built with Lua version : Lua 5.3.1
Built with transparent proxy support using: IP_TRANSPARENT IPV6_TRANSPARENT IP_FREEBIND
Available polling systems :
epoll : pref=300, test result OK
poll : pref=200, test result OK
select : pref=150, test result OK
Total: 3 (3 usable), will use epoll.
- Chrome(50.0.2661.94)(64位)[不工作]
- Firefox(46.0)(64位)[works]
- Safari(9.11601.5.17.1)(64位)[工作]
- cURL(7.43.0(x86_64-apple-darwin15.0)libcurl/7.43.0 SecureTransport zlib/1.2.5)[works]
cURL--ciphers ecdhe_ecdsa_aes_128_sha--ssl--head--tlsv1.2 https://
调用cURL命令,它返回200 OK
我在服务器端使用Ubuntu Xenial 16.04 LTS,版本如下:
[root@haproxy-server]: /etc/haproxy # haproxy -vv
HA-Proxy version 1.6.4 2016/03/13
Copyright 2000-2016 Willy Tarreau <willy@haproxy.org>
Build options :
TARGET = linux2628
CPU = generic
CC = gcc
CFLAGS = -g -O2 -fPIE -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2
OPTIONS = USE_ZLIB=1 USE_REGPARM=1 USE_OPENSSL=1 USE_LUA=1 USE_PCRE=1
Default settings :
maxconn = 2000, bufsize = 16384, maxrewrite = 1024, maxpollevents = 200
Encrypted password support via crypt(3): yes
Built with zlib version : 1.2.8
Compression algorithms supported : identity("identity"), deflate("deflate"), raw-deflate("deflate"), gzip("gzip")
Built with OpenSSL version : OpenSSL 1.0.2g 1 Mar 2016
Running on OpenSSL version : OpenSSL 1.0.2g-fips 1 Mar 2016
OpenSSL library supports TLS extensions : yes
OpenSSL library supports SNI : yes
OpenSSL library supports prefer-server-ciphers : yes
Built with PCRE version : 8.38 2015-11-23
PCRE library supports JIT : no (USE_PCRE_JIT not set)
Built with Lua version : Lua 5.3.1
Built with transparent proxy support using: IP_TRANSPARENT IPV6_TRANSPARENT IP_FREEBIND
Available polling systems :
epoll : pref=300, test result OK
poll : pref=200, test result OK
select : pref=150, test result OK
Total: 3 (3 usable), will use epoll.
我知道这篇文章不在StackExchange的正确位置(对不起!),但我想发布一个潜在的解决方案。我认为问题在于Chrome、Firefox和Safari对椭圆曲线的支持。从SSLLabs网站: :secp256r1、secp384r1、secp521r1 :secp256r1、secp384r1、secp521r1 :secp256r1,secp384r1 问题是我测试的ECC证书的私钥是使用
secp521r1
()生成的,而最新版本的Chrome在OS X 10.11上不支持该私钥
请参阅此问题:您的web服务器似乎只支持以下两个密码套件:
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
我想您的问题是缺少一些密码套件(至少TLS\u RSA\u和\u AES\u 128\u CBC\u SHA
)
TLS 1.2必须支持密码套件TLS\u RSA\u和\u AES\u 128\u CBC\u SHA
(请参阅强制密码套件或RFC5246)。以同样的方式,我建议您向前看并包括协议
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
那套房呢
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
也是严格推荐的。看见您使用Nginx web服务器,它应该支持TLS\u ECDHE\u ECDSA\u和TLS\u ECDHE\u RSA\u和。我建议你把所有的密码套件都包括在内
另外,我建议您使用或至少仔细检查Mozilla SSL Configuration Generator为浏览器或web浏览器提供的Nginx设置建议。您可以阅读有关套件的更多信息。您只配置了很少的密码,而且浏览器支持的密码不同。我建议用这个来代替。至于您当前的配置:请对照您的服务器实际显示为受支持的内容进行检查,然后对照您的Chrome浏览器进行检查。然后看看你是否发现密码重叠。如果你的服务器在线,你能将URL发布到服务器上吗?Stack Overflow是一个关于编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参见帮助中心中的。也许或者会是一个更好的提问的地方。另请看。@jww:我相信我需要一定的声誉来解决问题?您是否有可能发起移动?私钥的算法是否也是一个因素?我知道某些Chrome不支持secp521r1
@ScottCrooks:这是正确的,但显示当前有人使用secp256r1
。具体的选择取决于需求。例如,如果需要,可以指定secp521r1、secp384r1、secp256r1
。问题是secp521r1
的速度比secp384r1
慢得多,secp384r1
的速度比secp256r1
慢得多。选择secp521r1、secp384r1、secp256r1
可能有助于测试,但我不确定它是否有助于生产。我认为您指的是CA链中的一个键。我们使用的证书实际上是ec521位
。不管怎样,谢谢你对密码的建议:)@ScottCrooks:你是否尝试过通过添加丢失的密码站点来解决问题?EC521仅用于证书的签名。套件TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256使用另一个密码套件sec256r1当前用于TLS。可能您无法验证证书,但是可以验证证书的系统使用sec256r1进行验证TLS@ScottCrooks:顺便说一下,我建议您查看的TLS配置及其测试