总有改不完的bug
之前一直使用的http请求,但最近一项测试中用了https请求,项目中的websocket推送功能突然失效了,于是喜提bug一枚。
搭建本地测试环境
tomcat配置https,这里使用java安装时自带的keytool即可。
在命令窗口输入(已经配置了java环境变量 jdk1.8)
C:\Users\Administrator>keytool -genkey -alias tomcat -keyalg RSA
输入密钥库口令:
再次输入新口令:
您的名字与姓氏是什么?
[Unknown]: tyf
您的组织单位名称是什么?
[Unknown]: zw
您的组织名称是什么?
[Unknown]: zw
您所在的城市或区域名称是什么?
[Unknown]: taiyuan
您所在的省/市/自治区名称是什么?
[Unknown]: shanxi
该单位的双字母国家/地区代码是什么?
[Unknown]: cn
CN=tyf, OU=zw, O=zw, L=taiyuan, ST=shanxi, C=cn是否正确?
[否]: y
输入 <tomcat> 的密钥口令
(如果和密钥库口令相同, 按回车):
再次输入新口令:
Warning:
JKS 密钥库使用专用格式。建议使用 "keytool -importkeystore -srckeystore C:\Users\Administrator\.keystore -destkeystore C:\Users\Administrator\.keystore -deststoretype pkcs12" 迁移到行业标准格式 PKCS12。
将生成的.keystore文件复制到tomcat的bin目录下。
PS E:\tomcat\tomcat8083\bin> keytool -selfcert -alias tomcat -keystore .keystore
输入密钥库口令:
Warning:
JKS 密钥库使用专用格式。建议使用 "keytool -importkeystore -srckeystore .keystore -destkeystore .keystore -deststoretype pkcs12" 迁移到行业标准格式 PKCS12。
PS E:\tomcat\tomcat8083\bin> keytool -importkeystore -srckeystore .keystore -destkeystore .keystore -deststoretype pkcs1
2
输入源密钥库口令:
已成功导入别名 tomcat 的条目。
已完成导入命令: 1 个条目成功导入, 0 个条目失败或取消
Warning:
已将 ".keystore" 迁移到 Non JKS/JCEKS。将 JKS 密钥库作为 ".keystore.old" 进行了备份。
PS E:\tomcat\tomcat8083\bin>
接下来修改tomcat的server.xml文件
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
keystoreFile="bin/.keystore" keystorePass="123456"
clientAuth="false" sslProtocol="TLS" />
keystorePass=“123456” 这个就是输入的密钥库口令。
测试环境 就搭建完毕了,启动项目后,访问:https://localhost:8443/projectName 就可以了。
“Bug”修改
在http协议中websocket与后台通信使用 ws://localhost:8443/projectName/**
在https协议下,需要改成 wss://localhost:8443/projectName/**