本文已参加「新人创作礼」活动,一起敞开创作之路。

一、预备

首先你要有个服务器,服务器上要有JDK和Tomcat,JDK和Tomcat的装置请自行百度,这儿不赘述。 我的JDK版别为1.8.0_311,Tomcat版别为10.0.14,其他版别请自行验证。装备中我全程使用的是root用户,如果你用的是其他用户,请注意相应的Linux权限问题。由于我用的是java的keytool东西,所以Windows生成证书的指令跟Linux的指令一样,与操作体系无关。

二、为服务器生成自签证书(单双向认证都需求)

1.在/opt目录下创立ca文件夹

意图:便利证书管理,详细放在哪个文件夹没有硬性要求,放在/opt文件夹下是我个人的习气。

指令

(1)移动到/opt文件夹: cd /opt

(2)创立ca文件夹:mkdir ca

截图

内网环境Tomcat配置HTTPS,了解一下?

2.创立服务器证书(keystore格局)

指令

(1)移动到刚刚创立的ca文件夹下:cd /opt/ca

(2)利用Java自带的keytool东西创立服务器证书:keytool -genkey -v -alias tomcat -keyalg RSA -ext SAN=ip:82.156.193.157 -validity 365000 -keystore tomcat.keystore

指令参数阐明

-genkey:在用户主目录中创立一个默许文件”.keystore”,还会发生一个mykey的别号,mykey中包括用户的公钥、私钥和证书。

-v:显现密钥库中的证书详细信息

-alias:设置证书别号,设置后会代替默许的mykey。

-keyalg:设置秘钥算法。

-ext:扩展,能够设置域名信息与内外网地址。如果是IP方法拜访用-ext SAN=ip:你的IP,如果是域名用 -ext SAN=dns:你的域名

-validity:设置证书有效期,最大为9999年。

-keystore:指定密钥和证书库,如果是放到Windows体系的C盘,需求管理员权限。

截图

内网环境Tomcat配置HTTPS,了解一下?

三、为客户端生成自签证书(仅双向认证需求,单向认证可忽略)

1.创立客户端证书(p12格局)

意图HTTPS比HTTP协议安全的主要原因便是HTTPS比HTTP多了证书验证这一步,阻止了中间人进犯。HTTPS的认证方法有两种,一是单向认证,二是双向认证。对于安全性要求不高的体系,采用单向认证就足够了,也便是客户端认证服务器端。可是如果想使体系安全性更高,我们就需求利用客户端证书来完成双向认证。

指令

(1)利用Java自带的keytool东西创立客户端证书:keytool -genkey -v -alias client -keyalg RSA -validity 365000 -storetype PKCS12 -keystore client.p12

参数阐明

-genkey:在用户主目录中创立一个默许文件”.keystore”,还会发生一个mykey的别号,mykey中包括用户的公钥、私钥和证书。

-v:显现密钥库中的证书详细信息

-alias:设置证书别号。

-keyalg:设置秘钥算法。

-validity:设置证书有效期,最大为9999年。

-storetype:设置密钥库的类型。

-keystore:指定密钥库,如果是放到Windows体系的C盘,需求管理员权限。

截图

内网环境Tomcat配置HTTPS,了解一下?

2.将p12格局的客户端证书转换为cer格局

意图: p12格局的证书无法直接导入客户端证书(tomcat.keystore)中,需求先转换成cer格局。

指令

(1)p12格局转cer格局:keytool -export -alias client -keystore client.p12 -storetype PKCS12 -storepass 123456 -rfc -file client.cer

参数阐明

-export:导出证书

-alias:设置别号

-keystore:指定源证书的途径与称号

-storetype:指定源证书的类型

-storepass:验证源证书的暗码

-rfc:将以可打印的编码格局输出证书

-file:指定方针证书的途径、文件名和类型

截图

内网环境Tomcat配置HTTPS,了解一下?

四、将客户端证书导入服务器证书中(仅双向认证需求,单向认证可忽略)

1.客户端证书导入服务器证书

意图:服务器端认证客户端证书。

指令

(1)将客户端证书导入服务器证书中:keytool -import -v -file client.cer -keystore tomcat.keystore

参数阐明

-import:导入证书

-v :显现密钥库中的证书详细信息

-file:填写被导入证书的途径与文件名,此处为客户端证书

-keystore:填写方针证书的途径与文件名,此处为服务器端证书

截图

内网环境Tomcat配置HTTPS,了解一下?

2.查看导入状况

意图:验证证书导入状况

指令

(1)在屏幕打印证书概况:keytool -list -keystore tomcat.keystore

证书信息阐明:由于在导入时没有给客户端证书设置别号,因此客户端证书别号默许为mykey

截图

内网环境Tomcat配置HTTPS,了解一下?

五、Tomcat装备服务器端证书(单双向认证都需求)

意图:通过装备Tomcat的server.xml文件,让Tomcat能够解析服务器证书。其他服务器装备证书的方法请自行百度。

操作过程

(1)将以下代码加入到Tomcat的server.xml文件中,注意Tomcat 8、9和Tomcat 10的增加写法不一样。装备项“clientAuth”设置为false,即可封闭Tomcat验证

<!--  Tomcat 8、9增加证书  -->
<Connector
	port="443"
	protocol="org.apache.coyote.http11.Http11NioProtocol"
	SSLEnabled="true"
	scheme="https"
	secure="true"
	keystoreFile="/opt/ca/tomcat.keystore"
	keystorePass="123456"
	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"
     truststoreFile="/opt/tomcat.keystore"
 	truststorePass="123456"
 	/>
<!-- Connector参数阐明:
Connector参数我只写了我需求的那部分,Connector参数还有许多,详细参数介绍请直接看Tomcat 9的官方阐明:https://tomcat.apache.org/tomcat-9.0-doc/config/http.html -->
<!--  Tomcat 10增加证书  --> 	
<Connector
     protocol="org.apache.coyote.http11.Http11NioProtocol"
     port="443"
     clientAuth="false"
     SSLEnabled="true">
          <SSLHostConfig>
               <Certificate
                    certificateKeystoreFile="/opt/ca/tomcat.keystore"
                    certificateKeystorePassword="123456"
                    type="RSA"
                    />
          </SSLHostConfig>
     </Connector>
<!-- Connector参数阐明:
Connector参数我只写了我需求的那部分,Connector参数还有许多,详细参数介绍请直接看Tomcat10 的官网阐明:https://tomcat.apache.org/tomcat-10.0-doc/ssl-howto.html#Configuration -->

六、客户端装置服务器证书(单双向认证都需求)

1.将服务器证书keystore转为cer格局

意图:cer格局便于在浏览器、Windows体系、iis证书装置,便于用Hbuilder打包安卓APP等(Hbuilder直接用keystore就行) 。

指令: (1)keytool -keystore tomcat.keystore -export -alias tomcat -file server.cer

参数阐明:能够参考客户端p12格局转cer格局

截图

内网环境Tomcat配置HTTPS,了解一下?

2.浏览器、Windows装置服务器证书

这儿以Chrome浏览器为例,edge、火狐、360、2435、QQ等浏览器通用,IE浏览器装备方法请自行百度。

(1)复制服务器证书到客户端。我用的是WinSCP将服务器端证书(server.cer)下载到客户端电脑上的。

(2)双击服务器证书文件(server.cer),点击装置证书。

内网环境Tomcat配置HTTPS,了解一下?

(3)挑选装置证书到当时用户,或悉数用户,这儿我挑选装置给这台电脑上的悉数用户

内网环境Tomcat配置HTTPS,了解一下?

(4)挑选证书存储位置,这儿要挑选“受信任的根证书颁布组织”

内网环境Tomcat配置HTTPS,了解一下?

(5)完成装置

内网环境Tomcat配置HTTPS,了解一下?

七、验证奇观的时刻(客户端成功单向认证服务器!)

翻开浏览器,利用HTTPS拜访Tomcat服务器的示例项目,能够看到现已完成了HTTPS衔接,单向认证现已完成。

截图

内网环境Tomcat配置HTTPS,了解一下?