最近因为做的一个项目需要小程序,而小程序发布又需要https接口,所以只能申请了一个证书,配置了https接口,这里简单做一个总结。
我这里使用的tomcat配置https,nginx也可以,需要的小伙伴可以下去自行摸索一下。
一、申请证书,下载证书
阿里云可以申请免费一年的证书,后期续费需要收费,也可以使用jdk的keytool生成证书,根据自己需要。我这里使用的是阿里的免费证书。申请、验证后,将tomcat对应的证书下载下来。
如图,txt文件内容是证书密码。
将.pfx证书文件放到tomcat下的新建文件夹cert中(需与keystoreFile配置的路径一致),修改.pfx文件名称为cert.pfx.
二、Tomcat配置https
打开tomcat安装目录下的conf – server.xml文件。
1.将server.xml文件中的所有8443端口修改为443,修改后访问web项目路径可以不加端口号,因为https默认访问的端口号是443,也可以修改为别的端口。将server.xml文件中的如下代码注释取消,改为如下内容
<Connector connectionTimeout="20000" port="443"protocol="org.apache.coyote.http11.Http11Protocol"SSLEnabled="true"scheme="https"secure="true"keystoreFile="cert/cert.pfx"keystoreType="PKCS12"keystorePass="你的证书密码"clientAuth="false"SSLProtocol="TLSv1+TLSv1.1+TLSv1.2"ciphers="TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256"/>
此时访问https://127.0.0.1/路径即可打开tomcat
三、配置访问http默认跳转到https
打开web项目下的/WEB-INF/web.xml文件,在文件的后面加上如下内容:
<!-- 局部https安全连接配置 --><security-constraint><display-name>Auth</display-name><web-resource-collection><web-resource-name>Protected Area</web-resource-name><url-pattern>/user/*</url-pattern> <url-pattern>/main/index</url-pattern> </web-resource-collection><user-data-constraint><description>SSL required</description><transport-guarantee>CONFIDENTIAL</transport-guarantee></user-data-constraint></security-constraint>
配置完成后,重启tomcat,访问127.0.0.1/项目名/会自动跳转到https://127.0.0.1/项目名路径。
四、为项目配置域名
通过域名解析来将域名与服务器上的项目id关联起来,使得我们可以通过访问域名/项目名来访问项目。
域名解析文档链接