本地配置ssl证书

安全证书

获取安全证书的方式:

  • 权威机构申购CA证书

  • 自我签名的证书 (离线版)

以自签名证书为例,使用SUN公司提供的证书制作工具keytool制作自签证书,JDK版本为1.8。首先打开cmd命令行,使用如下命令创建密钥库和密钥条目

命令工具的位置:java.exe ,配置了环境变量可以在任意地方使用

该命令会在指向的地址位置生成一个名为tomcat.keystore的证书

1
keytool -genkey -alias ceshi -storetype PKCS12 -keyalg RSA -keystore D:\app_conf\tomcat\tomcat.keystore 

输入一下信息

进入该步骤后需要注意的密钥需要记住,之后还要用的,名字与姓氏要填域名即localhost其他的随便填即可。

生成证书如下:

Tomcat配置

编辑 apache-tomcat-9.0.52\conf\server.xml 文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8"/>


<!--https-->
<!--
certificateKeystoreFile 指定证书所在的目录 ;
certificateKeystorePassword 证书的秘钥上面设置的;
type是使用的加密算法
-->
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" schema="https" secure="true" SSLEnabled="true">
<SSLHostConfig>
<Certificate
certificateKeystoreFile="D:\app_conf\tomcat\tomcat.keystore"
certificateKeystorePassword="Xwh190823" type="RSA"
/>
</SSLHostConfig>
</Connector>

访问

http 访问 Tomcat

1
http://localhost:8080

htps 访问 Tomcat

1
https://localhost:8843

拓展

可以进行其他的配置如修改为默认的端口号,这样就不需要每次添加端口号了,http协议是80,https协议是443。

也可以配置跳转,将http协议访问的跳转到https协议上去

即在web.xml配置文件中添加:

1
2
3
4
5
6
7
8
9
<security-constraint> 
<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>

添加上面内容就会实现实现HTTP自动跳转为HTTPS。甚至在跳转到一个项目上直接跳到网站首页也是可以的。

服务器上配置SSL证书

参考 1