通向架构师的道路(第二天)之apache tomcat https应用

前言

   1、标题与某位大牛写的文章保持一致,有致敬和借鉴成分。

   2、我不是大牛,对各位有参考意义最好,若有错误,请评论说明,不胜感激。

   3、当你看到别人博客并实现之并自己写出相应文章,才算了解。不然只是自欺欺人。

   4、我回过头看我写的这篇博客  还是很乱  可能具体原理还不是很透彻  但是至少是自己一步一步实验成功的

 说明

  1、http走的是80端口,而https走的是443端口,且https使用的是RSA非对称128位加密。

  2、https比http更安全,安全在哪?http://zhanzhang.baidu.com/wiki/383 (一篇值得一看的文章)也可以不断的百度知乎达到自己理解为止

 3、本文使用的是apache2.2.11,为啥特别强调这个版本。这个版本自带mod_ssl.so模块。之前为了使用2.2.23百度无数,没有解决问题,后来某篇博客提到使用2.2.11自带的版本

 4、下载链接(若下载链接失效 评论索要)

    链接: https://pan.baidu.com/s/1nXF2Px2ZP1b6jT9T0gpFCg 密码: 5u33      apache

    链接: https://pan.baidu.com/s/13LTm_OAFknooCrh-4MdvTw 密码: cge6    openssl

一  openssl签证书

 下载链接里面的openssl 当你使用的时候会出现很多错误,因为即使这个是windows版本的,但是里面很多盘符也要修订。基本可以靠自己解决,错误看看稍微想想 改下配置文件就行了。这里一笔带过。

一、生成根证书
生成根证书所用密钥
不需要设置环境变量 只需要cd命令进入openssl.exe所在文件夹即可
openssl genrsa -des3 -out ca.key 1024
去除CA密钥口令
openssl rsa -in ca.key -out ca.key 代表这个证书在被应用程序启动时不需要显示的提示用户输入口令
生成CA即ROOT CA证书自签
openssl req -new -x509 -key ca.key -out ca.crt -config openssl.cnf
//Common Name-要安装这台证书的主机名
hosts文件配置
localhost helloworld
xxx.xxx.xx.xxx helloworld
IE 导入上面生成的ROOT证书
二、生成web服务器端证书
生成web服务器端证书密钥
openssl genrsa -des3 -out server.key 1024
去除CA密钥口令
openssl rsa -in server.key -out server.key 
生成web服务器端证书签名请求
openssl req -new -key  server.key -out server.csr
用Root CA去对Web服务器的证书请求即csr(certificate request)进行签名认证
openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -config openssl.cnf
请用比较工具 比较改变项  然后添加对应项即可  要有灵性!!不能生搬硬套
三、为Apache HttpServer布署https协议
下载地址 链接: https://pan.baidu.com/s/1bZTtxQBNbZtAI0tUV8MXWg 密码: smmy
四、为Tomcat也布署https协议
Web的信任域就是你的IE里的内容里的证书里的“根级信任域”,App Server的信任域是打不开也不能访问这块地方的,而且App Server的信任域格式也不是crt文件,而是.jks(javakey store的简称)。
生成Tomcat的SSL证书
怎么生成证书?回顾一下上文:
1)  生成KEY
2)  生成证书请求
3)  用CA签名
生成JKS密钥对,密码使用6个a,alias代表“别名”,CN代表Common Name,必须与主机名完全一致我的主机名是helloworld
keytool -genkey -alias helloworldX509 -keyalg RSA -keysize 1024 -dname "CN=helloworld, OU=insurance-dart, O=Cognizant, L=SH, S=SH, C=CN" -keypass aaaaaa -keystore helloworld.jks -storepass aaaaaa
生成JSK的CSR
keytool -certreq -alias helloworldX509 -sigalg "MD5withRSA" -file helloworld.csr -keypass aaaaaa -keystore helloworld.jks -storepass aaaaaa
使用openssl结合ca.crt与ca.key为jsk的csr来签名认证并产生jks格式的crt
openssl x509 -req -in helloworld.csr -out helloworld.crt -CA ca.crt  -CAkey ca.key -days 3650 -CAcreateserial -sha1 -trustout -CA ca.crt -CAkey ca.key -days  3650 -CAserial ca.srl -sha1 -trustout
将Root CA导入jks信任域
keytool -import -alias rootca -trustcacerts -file ca.crt -keystore helloworld.jks -storepass aaaaaa
补信任链

keytool -import -alias  helloworldX509 -file helloworld.crt -keystore helloworld.jks -storepass aaaaaa

tomcat server.xml配置加入下面内容


启动 tomcat  启动apache 打开demo地址实验成功







问题解决参考网址:

https://wiki.apache.org/httpd/SSLSessionCache

https://blog.csdn.net/hfsu0419/article/details/7536408


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值