最近因为做的一个项目需要小程序,而小程序发布又需要https接口,所以只能申请了一个证书,配置了https接口,这里简单做一个总结。
我这里使用的tomcat配置https,nginx也可以,需要的小伙伴可以下去自行摸索一下。
阿里云可以申请免费一年的证书,后期续费需要收费,也可以使用jdk的keytool生成证书,根据自己需要。我这里使用的是阿里的免费证书。申请、验证后,将tomcat对应的证书下载下来。
如图,txt文件内容是证书密码。
将 .pfx 证书文件放到tomcat下的新建文件夹cert中(需与keystoreFile配置的路径一致),修改 .pfx 文件名称为cert.pfx.
打开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
打开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关联起来,使得我们可以通过访问 域名/项目名 来访问项目。