开发项目已经完成,那么就是要部署项目到服务器上面。我最近把刚完成的项目部署到服务器上面,内网通过http协议进行访问一切正常,但是测试外网通过https协议进行访问的时候就出现了一些js文档找不到的bug,显示js访问路径居然是http://127.0.0.1的。
解决思路:内网访问正常(http访问),但是外网(https)访问出现了上面的情况。原来是忘记了在tomcat中server.xml还需要对https端口协议进行相关配置的。
项目通过https端口号访问的相关配置:
(1)生成证书文件
①证书相关机构去申请证书,这一种是需要购买的
②自签名证书,就是利用工具自己生成证书。我们运用JDK自带工具KeyTool生成自签发证书
a,打开DOS界面
b,在界面中输入下面指令:keytool -genkey -alias sslkey -keypass 123456 -keyalg RSA -keysize 1024 -validity 365 -keystore F:/sslkey/sslkey.keystore -storepass 123456
使用keytool命令生成证书:
keytool
-genkey
-alias (别名)
-keypass (别名密码)
-keyalg RSA
-keysize 1024(密钥长度)
-validity 365(有效期,天单位)
-keystore F:/sslkey/sslkey.keystore(指定生成证书的位置和证书名称)
-storepass (获取keystore信息的密码)
c,确定后可以在-keystore 路径中,你自己设置的路径下面寻找到生成的证书
(2)修改Tomcat下的conf文件夹中的server.xml文件,把https协议的端口号打开并作相应的调整
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" clientAuth="false" keystoreFile="F:/sslkey/sslkey.keystore" keystorePass="123456" sslProtocol="TLS" />
①keystoreFile的值是刚才生成证书存放(keystore)的路径地址
②keystorePass是证书的密码(storepass)的值
到了这一步,我们重启tomcat,那么访问项目就不需要通过https协议加上其端口号才可以访问
注意:我查询网上了相关资料,他们会提到修改web项目中的web.xml文件,增加下面的内容:
<security-constraint> <web-resource-collection> <web-resource-name>SSL</web-resource-name> <url-pattern>/*</url-pattern> </web-resource-collection> <user-data-constraint> <transport-guarantee>CONFIDENTIAL</transport-guarantee> </user-data-constraint> </security-constraint>
对于在web.xml配置的这段代码一些相关解释链接如下,可以点击进去看看