《网络(二):简单易懂的https双向认证自制安全证书和tomcat配置》

网络(一):简单易懂的Https工作原理

网络(二):简单易懂的https双向认证自制安全证书和tomcat配置

网络(三):简单易懂的Android平台Okhttp/Retrofit https证书配置

1、环境

电脑环境配置%JAVA_HOME%/bin/keytool.exe(jdk下一个工具)
windwos10
tomcat 7.0
IE 11

2、何为证书

以下两张截图是浏览器查看证书的信息,它包含了各种信息。

image.png

image.png

下面将列出几个后相关缀名的证书和它的简单介绍
keystore:
jks:数字证书库。
p12:是PKCS12的缩写。同样是一个存储私钥的证书库,由.jks文件导出的,用户在PC平台安装,用于标示用户的身份。
cer:俗称数字证书,目的就是用于存储公钥证书,任何人都可以获取这个文件 。
bks:由于Android平台不识别.keystore和.jks格式的证书库文件,因此Android平台引入一种的证书库格式,BKS。

注:证书之间的转换可以用工具portecle来进行转换;在https中证书扮演者重要角色,它保证颁发机构、有效期、加密密钥、加密算法等信息。

3、要生成的证书

1)https双向认证:即客户需要对服务器端身份进行认证,服务器端也需要对客户端身份进行认证

2)为客户端和服务器生成key,然后由key导出各自的证书

下面就开始生成个key和导出对应的证书,每一个步骤出命令和执行的截图。

为服务端生成keystore

keytool -genkeypair -alias server -keyalg RSA -validity 3650  -keystore  F:\server.keystore
image.png

导出服务器证书

keytool -export -alias server -file F:\server.cer -keystore F:\server.keystore 
image.png
image.png

生成客户端key

keytool -genkeypair -alias client -keyalg RSA -validity 3650 -keystore F:\client.jks
image.png

导出客户端证书

keytool -export -alias client -file F:\client.cer -keystore F:\client.jks 
image.png

3)证书交换
证书互换的原因:只有你中有我、我中有你,在双向认证时,我们才彼此认识,这个步骤非常重要!!!

将服务端的证书保存到 publickeys.jks中给客户端用识别服务端时用

keytool -import -v -alias server -file F:\server.cer -keystore F:\publickeys.jks
image.png

将客户端的证书保存到服务端的key中,给服务端识别客户端时用


image.png

你也可以通过list命令查看服务器的证书库,可以看到两个证书,一个是服务器证书,一个是受信任的客户端证书


image.png

至此,我们为客户端可服务端生成了密钥,以及导出各自的证书,并且为客户端的密钥和服务端的密钥导入了对方的证书(双向认证时用),接下来就要开始配置tomcat服务器了。

tomcat配置

1)首先把上述生成好的服务端密钥放到tomcat的conf目录下,并修改server.xml文件配置,配置代码如下:

  //其他配置省略...
   <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000" redirectPort="443" 
               />

    <Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"
               maxThreads="150" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS"
               keystoreFile="conf/server.keystore" keystorePass="123321"
               truststoreFile="conf/server.keystore" truststorePass="123321"/>
                
    <!-- Define an AJP 1.3 Connector on port 8009 -->
    <Connector port="8009" protocol="AJP/1.3" redirectPort="443" />

http的默认端口是80,https的默认端口是443,不这样配置会访问不到服务器。

2)修改web.xml文件配置,在最末尾添加如下配置,代码如下,让http发起得请求交给https处理。

<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>

这样tomcat的配置就好了,非常简单,重启服务器即可

浏览器访问https

IE浏览器


image.png
image.png

接下来就需要为PC端导入相关的证书了,由于PC浏览器中存储的密钥的正式格式为p12,所以还需要把客户端的证书jks格式转为p12,证书的转换可以使用portecle工具(具体使用的百度一下就会很对资料了);客户端需要导入两个证书,一个是存储自己密钥的key,一个是服务端为客户端提供的公钥证书,用与客户对服务端的身份进行识别,证书的导入每一个过程都有截图,导入后重启服务器即可。

1)安装客户端证书

image.png

image.png

image.png
image.png

2)安装服务端证书

image.png
image.png
image.png
image.png

最后请求服务器返回结果


image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,670评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,928评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,926评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,238评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,112评论 4 356
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,138评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,545评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,232评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,496评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,596评论 2 310
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,369评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,226评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,600评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,906评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,185评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,516评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,721评论 2 335

推荐阅读更多精彩内容