1.准备证书
1.1 SSL证书格式
- .DER .CER,二进制文件格式,只保存证书,不保存私钥。
- .PEM,一般是文本格式,可保存证书,可保存私钥。
- .CRT,可以是二进制格式,可以是文本格式,与 .DER 格式相同,不保存私钥。
- .PFX .P12,二进制格式,同时包含证书和私钥,有密码保护。
- .JKS,二进制格式,同时包含证书和私钥,有密码保护。
这里我们选用jks与pem格式。1.2 申请证书
一般可以在域名服务商哪里申请下载。
ssl格式转换网站:https://myssl.com/cert_convert.html,可将pem格式转为jks格式2.部署证书
如果443端口正常,将下面8443端口改为443端口。
2.1 JKS格式
先将jks证书复制到tomcat的conf文件夹
将tomcat中conf文件夹下server.xml文件添加(监听80端口一般已经设置):<Connector port="80" redirectPort="8443" connectionTimeout="20000" protocol="HTTP/1.1"/> <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" SSLEnabled="true" maxThreads="150"> <SSLHostConfig> <Certificate type="RSA" certificateKeystorePassword="123456" certificateKeystoreFile="conf/tomcat.jks"/> </SSLHostConfig> </Connector>
参数解释:
redirectPort="8443":是当有SSL请求时重定位到8443端口,可以修改为443端口,如果443端口没有被占用的话。
port:指定服务器端要创建的端口号,并在这个断口监听来自客户端的请求。
certificateKeystorePassword="123456",密码 certificateKeystoreFile="conf/tomcat.jks",证书文件。
修改完后,重启tomcat.2.2 pem格式
先将pem证书复制到tomcat的conf文件夹。
将tomcat中conf文件夹下server.xml文件添加(监听80端口一般已经设置):<Connector port="8443" protocol="org.apache.coyote.http11.Http11AprProtocol" maxThreads="150" SSLEnabled="true" > <UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" /> <SSLHostConfig> <Certificate certificateKeyFile="conf/localhost-rsa-key.pem" certificateFile="conf/localhost-rsa-cert.pem" certificateChainFile="conf/localhost-rsa-chain.pem" type="RSA" /> </SSLHostConfig> </Connector>
将localhost-rsa-cert.pem修改为证书名称。修改完后,重启tomcat.
2.3 http强制跳转https
在conf目录web.xml文件中添加:
<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>
3.查看证书是否部署成功
由于这里证书已过期,所以https为红色。之后放行8443端口,原来的网站应该可以使用https访问。4.server.xml文件
项目配置其它目录,添加:
<Context docBase="C:\upload" path="/upload"/>
5.查看端口占用
查找所有运行的端口
netstat -ano
查看被占用端口对应的 PID
netstat -aon|findstr "80"
查看指定 PID 的进程
tasklist|findstr "9988"
结束进程
强制(/F参数)杀死 pid 为 9988 的所有进程包括子进程(/T参数):taskkill /T /F /PID 9988