您的位置:首页 > 理论基础 > 计算机网络

Ubuntu系统学习笔记-7.Tomcat下设置https的一个小问题

2016-12-09 09:53 316 查看
一般我们写的javaweb网站都运行在tomcat容器中,使用的都是http协议,使用get明文传输,由于没有加密,所以整个数据的传输中,都是有可能被抓取、劫持或篡改(如中间人攻击,嗅探)。所以一些关键的服务需要用的https协议。昨天在尝试https时也遇到了一个问题,在这里就拿出来分享一下。

 

一、证书问题

为了做测试肯定不会专门去买一个证书,所以当然使用java的keytool自签发一个证书,在终端中输入:

生成密钥

keytool -genkey -alias ‘名称’ -keyalg RSA -keystore ‘名称’.jks -validity 3600 -storepass ‘密码’

签发证书

keytool -export -alias ‘名称’ -file ‘证书名称’.cer -keystore ‘名称’.jks -storepass ‘密码’

 

然后修改tomcat的conf下的server.xml,开放8443端口,并加载jks文件,

<Connectorport="8443"protocol="org.apache.coyote.http11.Http11NioProtocol"

               maxThreads="150" SSLEnabled="true" scheme="https" secure="true"

               keystoreFile="xxx.jks" keystorePass="密码"

               clientAuth="false" sslProtocol="TLS" />

 

这里有一点很重要,就是在生成密钥对是,第一项,即CN项,一定要写域名(如本机就填写localhost),后面信息的可以随意,因为我在局域网中测试,一开始直接写的ip,然后发现部署到tomcat上之后,即使已经给浏览器安装了签发的证书,仍然有警告,提示站点不符的错误。因此,我把CN改成了localhost,访问的时候直接在地址栏填入localhost:8443再次安装新证书之后,就不再警告了。如果使用STS这样的编译器,则应该修改和工程同目录下的Server文件夹里面tomcat的server.xml。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐