最近开发个小程序项目,必须通过https安全访问
准备:阿里云服务器、域名解析、SSL证书、Tomcat配置
1、域名解析:
登录阿里云服务器,进入域名,选择域名解析
点击添加记录,对域名进行解析,解析方式参考文档
https://help.aliyun.com/knowledge_detail/29725.html
这里我依次选择:记录类型:A
主机记录:www
解析线路:默认
记录值:需要绑定服务器ip地址
点击确定
在cmd中ping www.域名,可是否生效,生效后,在浏览器通过IP地址访问项目,再通过域名访问项目
2、SSL证书申请
步骤:登录阿里云,点击控制台,在页面左侧点击阿里云,搜索SSL证书——申请证书(根据需求选择证书类型)
证书申请后,会进入审核阶段,审核通过后,下载证书(根据服务器类型下载)
我用的是Tomcat服务器,服务类型选择Tomcat,下图为下载的证书
阿里云配置说明
https://help.aliyun.com/document_detail/98576.html?spm=5176.2020520163.0.0.1decpkjSpkjSb5
3、配置Tomcat
在Tomcat安装目录中创建文件夹cert,把下载的证书和密码文件拷贝到cert目录下
打开Tomcat中的conf目录下的server.xml,添加
<Connector port="443"
protocol="HTTP/1.1"
SSLEnabled="true"
scheme="https"
secure="true"
keystoreFile="cert/你的证书名.pfx" #此处keystoreFile代表证书文件的路径,请用您证书的文件名替换domain name。
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"/>
<Host name="域名" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Context path="" docBase="Tomcat路径\webapps\项目名" debug="0" reloadable="true" />
<!-- SingleSignOn valve, share authentication between web applications
Documentation at: /docs/config/valve.html -->
<!--
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
-->
<!-- Access log processes all example.
Documentation at: /docs/config/valve.html
Note: The pattern used is equivalent to using pattern="common" -->
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
docBase为Tomcat的绝对路径
修改
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
为如下代码,以下配置对Tomcat性能进行了优化
<Connector port="80" <!--设置80端口-->
protocol="HTTP/1.1"
maxHttpHeaderSize="8192"
maxThreads="1000"
minSpareThreads="100"
maxSpareThreads="1000"
minProcessors="100"
maxProcessors="1000"
enableLookups="false"
compression="on"
compressionMinSize="2048"
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
connectionTimeout="20000"
URIEncoding="utf-8"
acceptCount="1000"
redirectPort="443" <!--设置443-->
disableUploadTimeout="true"/>
修改web.xml的welcome-file-list
<welcome-file-list>
<welcome-file>login.html</welcome-file> <!--项目启动页面HTML,根据各自情况修改-->
</welcome-file-list>
在welcome-file-list下面添加
<login-config>
<!-- Authorization setting for SSL -->
<auth-method>CLIENT-CERT</auth-method>
<realm-name>Client Cert Users-only Area</realm-name>
</login-config>
<security-constraint>
<!-- Authorization setting for SSL -->
<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>
重新启动Tomcat,在浏览器测试成功