在本地局域网搭建 Https 服务
一、环境准备
- 服务器系统:CentOS 6 (Red Hat Enterprise Linux Server release 6.3 (Santiago))
- web 服务器: Nginx、Tomcat9
- Java 环境:Java 8
二、Https 服务搭建
2.1 https 证书获取
获取 https 证书主要有两种方式,第一种,使用工具生成 ssl 证书,例如:openssl 工具、 JDK 自带的 keytool 工具;第二种,在线向第三方机构申请的免费或付费的 SSL 证书,例如:阿里云 SSL 证书服务,百度云 SSL 证书服务,华为云 SSL 证书管理 SCM,腾讯云 SSL 证书服务等。本次采用第一种方式,使用工具生成 ssl 证书。之前写《基于 TrueLicense 实现 web 应用的 License 验证》时,有详细讲到使用 keytool 生成 ssl 证书文件。
2.2 使用 Tomcat 配置 Https
2.2.1 生成 ssl 证书
1 | 为服务器生成证书 目录下面生成tomcat.keystore的文件 |
2.2.2 配置 Tomcat 的 Https 服务
1
2
3
4
5
6
7
8
9
10
<!-- <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> -->
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true">
<SSLHostConfig>
<Certificate certificateKeystoreFile="conf/tomcat.keystore"
type="RSA" certificateKeystorePassword="123456" />
</SSLHostConfig>
</Connector>
启动 Tomcat,访问 8443 端口验证服务。
2.3 使用 Tomcat+Nginx 配置 https
2.3.1 keytool 生成证书
1 | 生成密钥对 |
安装 openssl,将 cer 格式证书转 pem 格式。windows 下载链接。1
2
3
4将cer格式证书转pem格式
openssl x509 -inform der -in server.cer -out server.pem
提取私钥
openssl pkcs12 -nocerts -nodes -in server.p12 -out server.key
2.3.2 openssl 生成证书
1 | 生成私钥文件 |
2.3.3 配置 nginx
1 | server { |
重启 nginx1
/usr/local/nginx/sbin/nginx -s reload
Nginx 的安装和配置可参考《Nginx 的安装和配置》。