0


谷歌浏览器提示客户端和服务器不支持一般 SSL 协议版本或加密套件(亲测有效)

目录

最近访问一部分网站时,出现如下图所示 “ 此网站无法提供案例连接,客户端和服务器不支持一般 SSL 协议版本或加密套件 ” 的问题。
在这里插入图片描述

一、定位问题

点击浏览器中网址上面锁头出现如下:
在这里插入图片描述
然后点击网站安全链接,出现如下:
在这里插入图片描述
通过对比,可以看到,该域名因为使用的是 TLS 1.0,所以会出现问题,因为谷歌等大部分浏览器已经开始全面禁止TLS1.0了。所以我们需要升级我们的服务端支持TLS1.2以上。

二、升级TLS1.2

1、原理

在这里插入图片描述

之前架构

之前Tomcat是监听https的8443端口,在tomcat/conf/server.xml中配置如下:

  1. <Connectorport="8080"protocol="HTTP/1.1"URIEncoding="UTF-8"connectionTimeout="20000"compression="on"compressionMinSize="512"compressableMimeType="text/html,text/xml,text/plain,text/javascript,text/csv,application/javascript,application/json,application/xml"/><Connectorprotocol="org.apache.coyote.http11.Http11Protocol"URIEncoding="UTF-8"port="8443"SSLEnabled="true"maxThreads="150"scheme="https"secure="true"clientAuth="false"sslProtocol="TLS"disableUploadTimeout="false"sslEnabledProtocols="TLSv1,TLSv1.1,TLSv1.2"keystoreFile="../ssl3/sggk.jks"keystorePass="sggk123"ciphers="TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA,TLS_ECDH_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA,TLS_ECDH_RSA_WITH_AES_128_CBC_SHA,TLS_ECDH_ECDSA_WITH_RC4_128_SHA,TLS_ECDH_RSA_WITH_RC4_128_SHA,TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA,TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA,TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA,TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA"/>

虽然看到tomcat配置支持TLSv1.2,但是由于低版本支持不好,所以配置无效。

调整架构

所以我们需要通过nginx反向代理来监听HTTPS:8443端口,然后转发到tomcat的HTTP:8080

2、配置nginx

配置参考如下

  1. worker_processes 1;
  2. events {
  3. worker_connections 1024;}
  4. http {
  5. include mime.types;
  6. default_type application/octet-stream;
  7. underscores_in_headers on;#表示如果header name中包含下划线,则不忽略#access_log logs/access.log main;
  8. sendfile on;
  9. keepalive_timeout 65;gzip on;#服务器的集群
  10. upstream www_test {#服务器集群名字 #ip_hash;
  11. server 127.0.0.1:8080 ;#服务器配置 weight是权重的意思,权重越大,分配的概率越大。 #server 127.0.0.1:9092 weight=1; }
  12. server {
  13. listen 443 ssl;
  14. server_name www.test.cn;
  15. ssl_certificate D:/Tomcat 7.0/ssl/www.test.cn.pem;
  16. ssl_certificate_key D:/Tomcat 7.0/ssl/www.test.cn.key;
  17. ssl_session_cache shared:SSL:1m;
  18. ssl_session_timeout 5m;
  19. ssl_ciphers HIGH:!aNULL:!MD5;
  20. ssl_prefer_server_ciphers on;# 配置静态资源
  21. location /pm/v4/{alias"D:/Tomcat 7.0/webapps/pm/v4/";}
  22. location /pm/jslib/{alias"D:/Tomcat 7.0/webapps/pm/jslib/";}
  23. location /pm/css/{alias"D:/Tomcat 7.0/webapps/pm/css/";}
  24. location /pm/images/{alias"D:/Tomcat 7.0/webapps/pm/images/";}
  25. location /pm/temp/{alias"D:/Tomcat 7.0/webapps/pm/temp/";}
  26. location /pm/main4.0/{alias"D:/Tomcat 7.0/webapps/pm/main4.0/";}
  27. location /pm{
  28. add_header Cache-Control 'no-store';
  29. client_max_body_size 300m;
  30. proxy_http_version 1.1;
  31. proxy_set_header Upgrade $http_upgrade;
  32. proxy_set_header Connection "upgrade";
  33. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  34. proxy_set_header Host $http_host;
  35. proxy_redirect off;
  36. proxy_connect_timeout 1;
  37. proxy_send_timeout 240;
  38. proxy_read_timeout 240;
  39. proxy_pass http://www_test/pm;}}}

注意两个ssl证书文件路径
ssl_certificate D:/Tomcat 7.0/ssl/www.test.cn.pem;
ssl_certificate_key D:/Tomcat 7.0/ssl/www.test.cn.key;
证书需要客户提供或者自己去阿里云或者腾讯云申请,它属于nginx专用证书,跟tomcat的不一样
可以参考:nginx配置阿里云/腾讯云申请的免费SSL证书(nginx配置https)

3、配置tomcat

去掉https的配置,只保留http即可

  1. <Connectorport="8080"protocol="HTTP/1.1"URIEncoding="UTF-8"connectionTimeout="20000"compression="on"compressionMinSize="512"compressableMimeType="text/html,text/xml,text/plain,text/javascript,text/csv,application/javascript,application/json,application/xml"/>

三、访问nginx即可

  1. https://www.test.cn:8443/pm
标签: 服务器 ssl tomcat

本文转载自: https://blog.csdn.net/Blueeyedboy521/article/details/124963562
版权归原作者 Blueeyedboy521 所有, 如有侵权,请联系我们删除。

“谷歌浏览器提示客户端和服务器不支持一般 SSL 协议版本或加密套件(亲测有效)”的评论:

还没有评论