项目中咱们可能会用到HTTPS的访问请求,那么在JavaWeb项目中咱们怎么将请求时的http变为https,其实https相较于http就是访问协议的不一样,多了一个认证证书;算法
那咱们就来看看这个证书是怎么建立的:apache
其实JDK早已经为咱们提供了解决办法: C:\Program Files\Java\jdk1.8.0_131\bin\keytool.exetomcat
生成证书方式(cmd命令):工具
HTTPS : JDK证书制造工具: C:\Program Files\Java\jdk1.8.0_131\bin\keytool.exe 1,cmd代码: keytool -genkeypair -alias "tomcat" -keyalg "RSA" -keystore "test.keystore" 输入密钥库口令: 123456 姓氏(CN): localhost 单位名称(OU): gy 组织名称(O): gy 城市或区域(L): my 省/市/自治区(ST): sx 国家(C): cn 是否正确: y tomcat口令: 123456 说明: 密钥 库 密码: 123456 证书条目密码: 123456 功能: 建立一个别名为tomcat的证书条目,该条目存放在名为test.keystore的密钥库中,若test.keystore密钥库不存在则建立。 参数说明: -genkeypair:生成一对非对称密钥; -alias:指定密钥对的别名,该别名是公开的; -keyalg:指定加密算法,本例中的采用通用的RAS加密算法; -keystore:密钥库的路径及名称,不指定的话,默认在操做系统的用户目录下生成一个".keystore"的文件 注意: 1."名字与姓氏"应该是域名,若输成了姓名,和真正运行的时候域名不符,会出问题; 2.再次输入密码,第一次输入的是密钥库(keystore)的密码,第二次输入的是证书条目的密码; 3.这里所说的证书库和密钥库是等同的(我的观点); 2,cmd查看证书目录: keytool -list -keystore test.keystore 密钥库口令: 123456 查询到: 您的密钥库包含 1 个条目 tomcat, 2018-1-12, PrivateKeyEntry, 证书指纹 (SHA1): DC:59:14:41:71:20:D0:D3:64:3B:66:C7:47:F2:60:6B:2D:55:25:15 3,cmd导出证书文件: keytool -export -alias tomcat -file tomcat.jks -keystore test.keystore 密钥库口令: 123456 功能: 将名为 test.keystore 的证书库中别名为 tomcat 的证书条目导出到证书文件 tomcat.crt 中; 4,cmd导入证书的信息: keytool -import -keystore test_cacerts -file tomcat.crt 密钥库口令: 123456 功能: 将证书文件 tomcat.crt 导入到名为 test_cacerts 的证书库中; 5,cmd查看证书信息: keytool -printcert -file "tomcat.crt" 密钥库口令: 123456 功能: 查看证书文件 tomcat.crt 的信息; 查看证书库信息: keytool -list -v -keystore test.keystore 密钥库口令: 123456 功能: 查看证书库文件 test.keystore 的信息; 6,cmd删除密钥库中的条目: (1),keytool -list -keystore test.keystore 密钥库口令: 123456 功能: 删除全部条目; (2),keytool -delete -keystore test.keystore -alias tomcat 密钥库口令: 123456 功能: 删除tomcat条目;
在WEB项目引用的Tomcat启动器的配置文件 server.xml 中修改:加密
<!-- 将之前的HTTP配置注释 <Connector URIEncoding="UTF-8" connectionTimeout="20000" port="8081" protocol="HTTP/1.1" redirectPort="8443"/> --> <!-- 打开HTTPS配置,将生成的证书库绑定进去 --> <Connector SSLEnabled="true" clientAuth="false" protocol="org.apache.coyote.http11.Http11NioProtocol" keystoreFile="C:/Users/yvdedu.com/test.keystore" certificateKeyAlias="tomcat" keystorePass="123456" maxThreads="150" port="8081" scheme="https" secure="true" sslProtocol="TLS"/>
启动项目成功,就算配置成功了;操作系统