配置HTTPS全过程

HTTPS配置全过程

服务器配置https协议

HTTPS,是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。

配置HTTPS就需要证书,关于证书方面不做过多解释,只介绍大概情况 :
证书通过权威的CA机构付费获得的证书才能被互联网承认,我们将其放在服务器上面,配置好后,就可以进行https通信了。
可以打开百度,在地址前可以看到安全两个字,可以点击查看百度的服务器证书。
这里写图片描述

接着也许会有人问,办理证书需要花钱唉,,有没有什么办法可以不花钱呢?答案是有的。我们可以自己给自己发一个证书,也可以进行https通
信,但是如果用浏览器访问的话,会提示不安全,没办法,因为谁叫咱不是权威呢。。=。=

Https协议验证过程

https验证过程是分为单向验证和双向验证

单向认证

  1、客户端保存着服务端的证书并信任该证书即可(参照百度,咱们是没有证书的,百度的证书是由权威CA机构颁布的)


  2、https一般是单向认证,这样可以让绝大部分人都可以访问你的站点。(依旧参照百度,这里咱们只需要验证百度的服务器证书即可,这里是浏览器去验证的)

双向认证

  1、先决条件是有两个或两个以上的证书,一个是服务端证书,另一个或多个是客户端证书。


  2、服务端保存着客户端的证书并信任该证书,客户端保存着服务端的证书并信任该证书。这样,在证书验证成功的情况下即可完成请求响应。(只有服务器验证客户端证书并通过,客户端验证服务器证书并通过,才可以进行通信,否则不可以!)


  3、双向认证一般企业应用对接。(所以企业与企业间对接,大部分都是自签证书)
  这里写图片描述


总结:单向验证只需要客户端验证服务器证书即可,双向则需要双方都验证,才可以进行通信!

证书制作

制作证书的工具有很多,我边里用XCA证书工具进行制作,具体要制作三个证书:根证书,服务器证书(用根证书签名),客户端证书(用根证书签名)。每种证书制作工具方式不同。这里只介绍XCA证书工具。先下载安装xca工具,地址是http://xca.hohnstaedt.de/
这里写图片描述

( 证书制作主要是根据密钥生成私钥和公钥,公钥用户加密,私钥用作解密。打个比方,当你访问一个https服务器时,服务器会将公钥给你,你拿着公钥,对数据进行加密处理,然后给服务器,最后服务器拿着自己的私钥来进行数据解密,这样就确保了数据的安全性)


下面我们来制作我们需要的证书
先用xca创建一本ca证书
xca打开的界面
依次File, New DataBase,选择xdb文件保存路径,再输入密码
这里写图片描述
切换到Certificates页面,点击New Certificate,因为要创建根证书,这里选择序号为1的自认证证书,签名算法选择SHA 256,证书模版选择默认CA,再点击Apply all(这个不能漏)如下所示:
这里写图片描述
切换到Certificates页面,点击New Certificate,因为要创建根证书,这里选择序号为1的自认证证书,签名算法选择SHA 256,证书模版选择默认CA,再点击Apply all(这个不能漏)如下所示:
这里写图片描述
最后点击OK,CA根证书做好了,有效期默认10年
这里写图片描述
将根证书导出成只包含公钥的证书格式,这本根证书就是放在网站上供用户下载安装,或主动安装到客户机器中的:
这里写图片描述
制作服务器证书、客户端证书和制作CA证书差不多,只有两个地方不一样:

1.选择已经制作好的根CA,然后点击New Certificate
这里写图片描述
2.签名时,选择使用根证书,这里是zhengshu进行签名颁发,然后证书模版选择服务器(制作客户端证书就选择HTTPS_client),其他都和制作根证书一样,然后点击Apply all(这个一定不能忘),然后再切到Subject、Extension页面填写相应的东西就OK了(听说将commonName与Internal Name 设置成域名或者ip,如果将客户添加信任服务器证书的话,浏览器会提示为安全,有兴趣的可以试一下)
这里写图片描述
服务器证书制作完成:
这里写图片描述
接着将服务器证书导入p12格式
这里写图片描述
输入私钥密码(后续配置tomcat时会用到):
这里写图片描述
同理制作客户端证书,并将之导出,也是p12格式的证书,包含私钥

TOMCAT下配置服务器证书

单向认证

将导出来的服务器证书放在服务器指定文件夹下,下面配置tomcat的server.xml文件
将8443端口注释去掉,添加keystroeFile指向服务器证书所以路径,keystorePass为制作证书所设置的密码。

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" keystoreFile="D:/server.p12" keystorePass="123456" 
/>

接着启动tomcat.就可以访问https啦,https://127.0.0.1:8443/项目名称 (会显示不安全连接)

如果用SpringBoot的话,配置更加简单,因为SpringBoot自带tomcat插件,所以只需要在配置文件中进行如下配置
配置https

server.port=8443
server.ssl.key-store=classpath:cer/server.p12
server.ssl.key-store-password=123456
server.ssl.keyStoreType=PKCS12

至此单向认证配置完成

双向认证

与单向认证不同(客户端只需要认证服务器即可),双向认证还需要服务器认证客户端,所以我们需要为服务器生成证书信任库,为了方便以后扩展,我们只需要将根证书添加至信任库即可,这样,只要是此根证书签名的客户端证书,均可以认证通过。不必再一 一配置。
在windows下打开CMD窗口
输入:

 keytool -import -v -file D:/根证书路径 -keystore E:\导出信任库路径/xxx.keystore

这里写图片描述

输入信任库口令(密码):
这里写图片描述

输入y,加入信任列表
这里写图片描述

成功加入信任列表
这里写图片描述

下面配置tomcat的server.xml文件

将8443端口注释去掉,添加keystroeFile指向服务器证书所以路径,keystorePass为制作证书所设置的密码。
与单向认证不同的是,需要将 clientAuth设置为true(此属性为是否进行双向验证),再添加 truststoreFile为信任库指向路径 truststorePass为信任库密码。

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="true" sslProtocol="TLS" keystoreFile="D:/server.p12" keystorePass="123456"   truststoreFile="E:/tomcat.keystore"    truststorePass="123456"/>

接下来客户端安装证书。如果只是进行浏览器访问的话,只需要将证书导入并添加信任即可
双击证书导入或者打开浏览器internet选项——内容选项卡——证书,进行添加,客户端证书添加至个人,根证书添加至受信任的根证书颁发机构即可。

至此,双向认证也配置完成。启动tomcat就可以欢乐的进行https访问了。。

个人文章,如需转载,请先联系本人,注明出处。谢谢,

  • 18
    点赞
  • 91
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值