美文网首页
tomcat 发布网站htpp转htpps

tomcat 发布网站htpp转htpps

作者: Lobo_asd | 来源:发表于2019-07-31 17:28 被阅读0次

    1、 执行命令keytool -v -genkey -alias tomcat -keyalg RSA -keystore /usr/local/tomcat.keystore,
    生成秘钥文件tomcat.keystore;
    参数简要说明:/usr/local/tomcat.keystore含义是证书文件保存地址,证书文件名称是tomcat.keystore ;“-validity 36500”含义是证书有效期,36500表示100年,默认值是90天
    在命令行回车后需要填写必要的参数:
    A、输入keystore密码:此处需要输入大于6个字符的字符串
    B、“您的名字与姓氏是什么?”这是必填项,并且必须是TOMCAT部署主机的域名或者IP[如:gbcom.com 或者 10.1.25.251],就是你将来要在浏览器中输入的访问地址,最好是域名
    C、 “你的组织单位名称是什么?”、“您的组织名称是什么?”、“您所在城市或区域名称是什么?”、“您所在的州或者省份名称是什么?”、“该单位的两字母国 家代码是什么?”可以按照需要填写也可以不填写直接回车,在系统询问“正确吗?”时,对照输入信息,如果符合要求则使用键盘输入字母“y”,否则输入“n”重新填写上面的信息
    D、输入<tomcat>的主密码,这项较为重要,会在tomcat配置文件中使用,建议输入与keystore的密码一致,设置其它密码也可以
    完成上述输入后,直接回车则在你在第二步中定义的位置找到生成的文件

    2、编辑tomcat/conf/server.xml
    找到对应的connector,取消注释,并且写入keystore文件路径和密码
    <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
    maxThreads="150" scheme="https" secure="true"
    clientAuth="false" sslProtocol="TLS"
    keystoreFile="/usr/local/tomcat.keystore"
    keystorePass="123456"/>

    3、强制HTTP转HTTPS 对工程的web.xml进行修改,在</welcome-file-list>后加入一下代码:
    <security-constraint>
    <web-resource-collection>
    <web-resource-name>OPENSSL</web-resource-name>
    <url-pattern>/*</url-pattern>
    </web-resource-collection>
    <user-data-constraint>
    <transport-guarantee>CONFIDENTIAL</transport-guarantee>
    </user-data-constraint>
    </security-constraint>
    作用是不管前缀是http还是https都自动转为htpps.

    4、重启tomcat,在网站输入http://域名:8080/项目名/网址或者https://域名:8443/项目名/网址测试是否能够访问网站。
    http默认端口80,但是我们Server.xml配置的是8080端口,所以需要填写端口,https默认端口443,我们配置的是8443端口。

    5、有的情况下访问网站不能输入端口,此时则需要修改server.xml文件,
    <Connector port="8080" protocol="HTTP/1.1"
    connectionTimeout="20000"
    redirectPort="8443" />

    <Connector port="80" protocol="HTTP/1.1"
    connectionTimeout="20000"
    redirectPort="443" />,
    修改
    <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
    maxThreads="150" scheme="https" secure="true"
    clientAuth="false" sslProtocol="TLS"
    keystoreFile="/usr/local/tomcat.keystore"
    keystorePass="123456"/>

    <Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"
    maxThreads="150" scheme="https" secure="true"
    clientAuth="false" sslProtocol="TLS"
    keystoreFile="/usr/local/tomcat.keystore"
    keystorePass="123456"/>,
    还要修改
    <Connector port="8009" enableLookups="false" protocol="AJP/1.3" redirectPort="8443" />

    <Connector port="8009" enableLookups="false" protocol="AJP/1.3" redirectPort="443" />,
    此时重启tomcat,再次输入http://域名/项目名/网址或者https://域名/项目名/网址测试是否能够访问网站。

    6、如果不能访问,查看server.xml和web.xml文件是否修改正确,查看防火墙是否关闭。
    仍然不能访问则查看错误信息。
    如果显示80和443不能访问等问题,测试8080和8443是否可以访问网站,如果可以,此时可以通过端口转发的方式解决问题。
    执行iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT - to-port 8080,访问80端口时转发到8080端口,443端口同理,想要删除该命令,则将-A改为-D再执行一次。

    7、通过浏览器可以正常访问网站,但是此时的安全证书是我们自己生成的,并没有通过专业检测,在很多平台依然受到限制,譬如使用微信小程序访问后台接口,要求必须为https请求,且无法输入端口,并且还要求有SSL证书,否则无法通过检测。
    此时可以在微信开发者工具中,点击详情-本地设置-不校验,如下图:


    14217092-32144044db471210.png

    此时在开发者工具中测试可以通过,但是发布之后,体验版、测试版、开发板均无法使用,只能用来测试接口返回数据是否正确的临时手段,最后想要上线依然需要SSL证书。

    8、申请SSL证书,有免费的,试用期1年,和收费的,阿里云和腾讯云都行,参考网站https://yq.aliyun.com/articles/637307,证书需要跟域名一致,需要审核,24小时内就会通过。然后参照网站https://blog.csdn.net/zhou_hao_yan/article/details/81582611,下载并且安装到我们的服务器tomcat中。

    9、再次在微信小程序中测试,则通过。

    相关文章

      网友评论

          本文标题:tomcat 发布网站htpp转htpps

          本文链接:https://www.haomeiwen.com/subject/slmtdctx.html