javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites

前言

今天一个朋友让我帮他做一下tomcat的https配置,中间遇到了标题中这个错误,因此记录了一下过程,服务器、域名、证书、tomcat都已经准备好,就是需要配置一下即可,用的是阿里云的证书服务,也是通过阿里云的证书服务生成的证书文件。

配置步骤

  • 通过阿里云控制台下载tomcat的https证书文件,证书文件很多,这里是点击tomcat选项下的下载按钮。
  • 把证书文件传到linux服务器,如21xxxxx.zip
  • 进入tomcat安装目录,比如/opt/tomcat-8.0,并创建cert目录(这个目录名可任意设置,用来存放证书),并把证书的压缩包移到此文件夹中,解压。
#进入tomcat目录
cd /opt/tomcat-8.0
#创建cert目录
mkdir cert
#进入cert目录
cd cert
#移动证书文件至当前目录
mv /home/user1/21xxxxx.zip ./
#解压证书文件
unzip 21xxxxx.zip
  • 进入tomcat的配置文件目录,修改server.xml配置文件。
cd /opt/tomcat-8.0/conf
vi server.xml
  • 重启tomcat服务器

https方式访问tomcat报错

初始时的tomcat的配置文件:

由于没有配置过tomcat的https目录,因此就直接按照阿里云的帮助文档来配置了,文件如下:

https是443端口,因此将图中的端口改为443,并将证书名和密码字段修改即可。

重启tomcat服务器,启动成功,通过http方式访问正常,但是通过https访问时tomcat控制台出现标题中的这个错误:

由于是第一次配置tomcat的证书,以往都是通过其他方式,因此也不是十分确定错误在哪里,tomcat版本?或者是jdk版本?脑海中闪过几个原因,但是通过http访问没问题,证明只是和刚刚的https配置有关。

解决方案

因此在网络上查了半天,但是都没有找到确切的答案,也没解决掉问题,一段时间无果后,又看了一遍错误,protocol is disabled or cipher suites are inappropriate,就感觉是不是protocol或者cipher参数配置有问题,然后就开始针对几个参数做了几次修改,最终可以正常通过https访问网站了。

修改后的配置如下:

<Connector port="443"
    protocol="org.apache.coyote.http11.Http11NioProtocol"
    SSLEnabled="true"
    scheme="https"
    secure="true"
    #证书文件目录
    keystoreFile="cert/21xxxxxxx.pfx"
    keystoreType="PKCS12"
    #密码
    keystorePass="21xxxxxxx"
    clientAuth="false"
    SSLProtocol="TLSv1+TLSv1.1+TLSv1.2"
/>

与阿里云给出的配置有些不同,protocol参数由"HTTP/1.1"修改为"org.apache.coyote.http11.Http11NioProtocol",ciphers参数删除了,SSLCipherSuite也删除了,可以通过https方式正常访问了。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏慎独

CentOS的SVN服务器搭建和自动部署

32630
来自专栏抠抠空间

Saltstack之SSH简介

12930
来自专栏运维小白

1.16 Linux机器相互登录

w 命令,查看系统负载 连接另一台linux主机 ssh 加ip地址 或 ssh username@IP (标准写法) 若没有写用户名,默认当前系统登录的用户 ...

248100
来自专栏运维小白

10.20 firewalld的9个zone

Linux防火墙-firewalld 打开firewalld systemctl disable iptables systemctl stop iptable...

20390
来自专栏运维前线

Omnibus GitLab 使用说明

1、Omnibus GitLab 使用说明 > 参考:https://gitlab.com/gitlab-org/omnibus-gitlab/blob/mas...

25990
来自专栏云计算教程系列

在CVM搭建你自己的网盘

Nextcloud是ownCloud的一个分支,它是一个文件共享服务器,允许您将个人内容(如文档和图片)存储在集中位置,就像腾讯微云、百度网盘、Dropbox一...

57150
来自专栏上善若水

011SSH免密码登陆

单向无密码访问远程服务器操作比较简单,比如服务器A需要无密码访问服务器B(A–>B),那么只需要在服务器A生成密钥对,将生成的公钥上传到服务器B的相关用户目录下...

18940
来自专栏linux系统运维

Nginx负载均衡,ssl原理,生成ssl密钥对,Nginx配置ssl

29740
来自专栏张善友的专栏

修改终端服务器的最大连接数

1.明确终端服务的2种模式  ----Windows 2000终端服务有2种运行模式: 远程管理模式和应用程序服务器模式。远程管理 模式允许系统管理员远程管理服...

23580
来自专栏Theo Tsao

Linux磁盘和文件系统管理

13910

扫码关注云+社区

领取腾讯云代金券