阿里云服务器Tomcat部署项目,申请SSL证书,域名实现https安全访问
最近开发个小程序项目,必须通过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,在浏览器测试成功