设为首页 收藏本站
查看: 682|回复: 0

[经验分享] tomcat配置https,单方验证,并自动将http请求转成https

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2017-12-26 10:35:01 | 显示全部楼层 |阅读模式
  第一次写博客,希望大家多多支持。如有觉得不对的请大家指正,本博客写来只为自己方便查找。
  使用jdk中自带的keytool生成数字证书。
  第一步:生成密钥文件
  在这之前,让我们看看keytool的帮助吧
  通过win+R输入cmd,然后输入以下命令
  keytool -genkey -help,就会出现如下:
  D:\>keytool -genkey -help
  keytool -genkeypair [OPTION]...
  生成密钥对
  选项:
  -alias <alias> 要处理的条目的别名
  -keyalg <keyalg> 密钥算法名称
  -keysize <keysize> 密钥位大小
  -sigalg <sigalg> 签名算法名称
  -destalias <destalias> 目标别名
  -dname <dname> 唯一判别名
  -startdate <startdate> 证书有效期开始日期/时间
  -ext <value> X.509 扩展
  -validity <valDays> 有效天数
  -keypass <arg> 密钥口令
  -keystore <keystore> 密钥库名称
  -storepass <arg> 密钥库口令
  -storetype <storetype> 密钥库类型
  -providername <providername> 提供方名称
  -providerclass <providerclass> 提供方类名
  -providerarg <arg> 提供方参数
  -providerpath <pathlist> 提供方类路径
  -v 详细输出
  -protected 通过受保护的机制的口令
  使用 "keytool -help" 获取所有可用命令
  这里生成密钥
  keytool -genkey -alias alias -keyalg RSA -keysize 2048 -keypass 123456 -validity 36600 -keystore E:\key\m.jks -storepass 123456
  这里的各个参数就对应上面的帮助吧,就不一一介绍了。
  输入上面命令就会出现如下信息:
  您的名字与姓氏是什么?
[Unknown]:  这里输入你的ip,若是服务器的话,就输入域名,后面的信息就随便输入即可

  您的组织单位名称是什么?
[Unknown]:

  您的组织名称是什么?
[Unknown]:

  您所在的城市或区域名称是什么?
[Unknown]:

  您所在的省/市/自治区名称是什么?
[Unknown]:

  该单位的双字母国家/地区代码是什么?
[Unknown]:

  CN=172.168.11.188, OU=x, O=x, L=x, ST=x, C=x是否正确?
[否]:  y  这里输入值是让你确认你上面的信息是否正确,若不正确,除了y的其他都可以。输入之后就会重复上面的操作。

  执行完成之后就可以在e盘下面的key文件夹下生成一个密钥m.jks
  第二步:导出证书
  命令:keytool -export -alias alias -keystore E:\key\m.jks -file E:\key\m.crt -storepass 123456
  执行后会出现如下提示:存储在文件 <E:\key\m.crt> 中的证书
  在这里就可以看到导出的证书m.crt
  第三步:客户端导入证书
  命令:
  keytool -import -keystore %JAVA_HOME%\jre\lib\security\cacerts -file E:\key\m.crt -alias alias
  执行后
  输入密钥库口令:  这里输入的口令必须是changeit; 输入完成后就会出现如下信息,若%JAVA_HOME%\jre\lib\security\目录下没有cacerts,还要再输入一次changeit;
  所有者: CN=172.168.11.188, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown
  发布者: CN=172.168.11.188, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown  
  序列号: 402163bd
  有效期开始日期: Fri Feb 24 16:53:06 CST 2017, 截止日期: Tue May 11 16:53:06 CST 2117
  证书指纹:
  MD5: A8:ED:C3:13:24:F5:D9:7E:E1:AF:B0:BB:B4:8C:EA:EA
  SHA1: 6B:69:79:1A:B0:AD:46:E2:98:74:FF:79:22:E6:A4:7B:7F:4E:9D:19
  SHA256: B3:23:F5:DD:6E:42:A4:14:CF:6A:9D:83:43:7A:9E:FA:B1:69:24:E5:15:DD:A5:97:BB:94:A5:A9:29:8D:2D:BE
  签名算法名称: SHA256withRSA
  版本: 3
  扩展:
  #1: ObjectId: 2.5.29.14 Criticality=false
  SubjectKeyIdentifier [
  KeyIdentifier [
  0000: 62 42 1F 16 B0 5C 94 77   BF 34 D3 C5 62 D3 D0 CB  bB...\.w.4..b...
  0010: CE A1 94 D1                                        ....  
  ]
  ]
  是否信任此证书? [否]:  y   输入y即可
  证书已添加到密钥库中
  第四步:
  找到tomcat目录下的conf文件下的server.xml;
  找到
  <Connector port="8080" protocol="HTTP/1.1"
  connectionTimeout="20000"
  redirectPort="8443" />
  在这个后面加入
  <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
  maxThreads="200"
  SSLEnabled="true"
  scheme="https"
  secure="true"
  clientAuth="false"
  sslProtocol="TLS"
  keystoreFile="E:\key\m.jks"   这里是你生成密钥的路径
  keystorePass="123456"   这里是你生成密钥时的密码
  keyAlias="alias"   这里是你设置的别名(记得保持一致)
  keystoreType="JKS" />
  到这里就配置完了,然后启动tomcat,输入https://您的名字与姓氏:8443/就会出现如下界面 DSC0000.png
  点击继续浏览此网站就会出现tomcat首页 DSC0001.jpg
  接下来配置http自动转为https:
  1.<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
  maxThreads="200"
  SSLEnabled="true"
  scheme="https"
  secure="true"
  clientAuth="false"
  sslProtocol="TLS"
  keystoreFile="E:\key\selfissue.jks"
  keystorePass="123654"
  keyAlias="selfissue"
  keystoreType="JKS" />
  修改为
  <Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
  maxThreads="200"
  SSLEnabled="true"
  scheme="https"
  secure="true"
  clientAuth="false"
  sslProtocol="TLS"
  keystoreFile="E:\key\selfissue.jks"
  keystorePass="123654"
  keyAlias="selfissue"
  keystoreType="JKS" />
  2.将<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
  修改为<Connector port="8009" protocol="AJP/1.3" redirectPort="443" />
  3.<Connector port="8080" protocol="HTTP/1.1"
  connectionTimeout="20000"
  redirectPort="8443" />
  修改为
  <Connector port="80" protocol="HTTP/1.1"
  connectionTimeout="20000"
  redirectPort="443" />
  4.你apache中的/conf/web.xml,在该文件</web-app>前面面加上这样一段:
  <login-config>
  <!-- Authorization setting for SSL -->
  <auth-method>CLIENT-CERT</auth-method>
  <realm-name>Client Cert Users-only Area</realm-name>
  </login-config>
  <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>
DSC0002.png

  回车出现如下界面 DSC0003.png

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-428172-1-1.html 上篇帖子: Centos环境下Tomcat启动缓慢 下篇帖子: tomcat服务开机启动脚本
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表