博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
配置tomcat的https通信(单向认证)
阅读量:7120 次
发布时间:2019-06-28

本文共 2177 字,大约阅读时间需要 7 分钟。

1、首先用jdk带的工具生成证书库

打开cmd命令行窗口,cd 到tomcat安装目录的bin下面执行

keytool -v -genkey -alias tomcat -keyalg RSA -keystore d:/tomcat.keystore  -validity 36500

附:d:/tomcat.keystore是将生成的tomcat.keystore放到d盘根目录下。”-validity 36500”含义是证书有效期,默认值是90天(注意若要放到c盘,在win7系统下,需要以管理员身份进入到命令行中进行操作,否则是无法创建tomcat.keystore的。)

    提示输入密钥库密码,如输入123456,配置tomcat的server.xml的时候要用到,从证书库中导出证书的时候也要用到。

    然后输入名称,这是访问时url中的名称。一定输入一致。

    一次输入组织、省市等确认输入无误完成keystore的创建。

附:

一般的数字证书产品的主题通常含有如下字段:

公用名称 (Common Name) 简称:CN 字段,对于 SSL 证书,一般为网站域名;而对于代码签名证书则为申请单位名称;而对于客户端证书则为证书申请者的姓名; 
单位名称 (Organization Name) :简称:O 字段,对于 SSL 证书,一般为网站域名;而对于代码签名证书则为申请单位名称;而对于客户端单位证书则为证书申请者所在单位名称; 
证书申请单位所在地: 
所在城市 (Locality) 简称:L 字段 
所在省份 (State/Provice) 简称:S 字段 
所在国家 (Country) 简称:C 字段,只能是国家字母缩写,如中国:CN 
其他一些字段:
电子邮件 (Email) 简称:E 字段 
多个姓名字段 简称:G 字段 
介绍:Description 字段 
电话号码:Phone 字段,格式要求 + 国家区号 城市区号 电话号码,如: +86 732 88888888 
地址:STREET  字段 
邮政编码:PostalCode 字段 
显示其他内容 简称:OU 字段

2、修改tomcat配置

打开%TOMCAT_HOME%/conf/server.xml中

<Connector port=”8443″ protocol=”HTTP/1.1″ SSLEnabled=”true” maxThreads=”150″ scheme=”https” secure=”true”clientAuth=”false” keystoreFile=”D:/tomcat.keystore” keystorePass=”123456″ sslProtocol=”TLS” />的注释,设置keystone的路径和密码keystoreFile=”D:/tomcat.keystore” keystorePass=”123456″。如果是tomcat7需要将将protocol=”HTTP/1.1″改成protocol=” org.apache.coyote.http11.Http11Protocol”,(Tomcat提供了两个SSL实现,一个是JSSE实现,另一个是APR实现,6.0默认使用JSSE实现,而7.0默认使用APR实现,本文中的采用的是jsse的实现)

3、启动tomcat验证https协议是否配置成功

浏览器输入 出现tomcat的小猫界面及访问成功。(当然如果你删除了webapps下面的默认站点就肯定是空白的了)

可以看到此时的网站是不受信任的

4、导出证书文件并导入到浏览器中

       在tomcat的bin目录下面执行:

keytool -export -alias tomcat -file D:/file.cer -keystore d:/tomcat.keystore -validity 36500

输入刚才设置的证书库密码就可以导出证书文件。

       双击file.cer文件即可将证书导入到受信任的根证书颁发机构位置上,也可运行certmgr.msc进入win的证书管理界面执行导入证书。

导入证书后访问就可以看到网站受信任了。此时完成了tomcathttps通信的配置。浏览器与网站间的信息传输就通过了https协议进行传输了,传输信息进行了加密。

 

附:配置http重定向到https。在应用程序中web.xml中加入:

<security-constraint>

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

这样当浏览器通过http协议访问应用时就会跳转到https协议的端口也就是这句配置的作用redirectPort=”8443″

转载地址:http://rniel.baihongyu.com/

你可能感兴趣的文章
JavaScript-常用正则函数(适合忘记时看)
查看>>
Sphinx-实战
查看>>
窗体之间传递值的几种方法
查看>>
onSingleTapUp()和onSingleTapConfirmed()的区别
查看>>
Android app应用多语言切换功能实现
查看>>
严重: Catalina.stop: java.net.ConnectException: Connection refused: connect
查看>>
几个常用的ps命令
查看>>
java如何获取本机IP
查看>>
gradle入门(1-7)eclipse和gradle集成插件的安装和使用
查看>>
uva 1378 - A Funny Stone Game sg博弈
查看>>
F#试用感受
查看>>
JavaScript继承详解(三)
查看>>
Java/JSP中使用JDBC连接SQL Server 2000/2005
查看>>
SSH框架+mysql+tomcat 服务器 中文乱码解决方案
查看>>
C++ 沉思录——Chap4:设计类的核查表
查看>>
Oracle笔记(一) Oracle简介及安装
查看>>
RabbitMQ 2.8.7 发布,AMQP 消息队列
查看>>
mysql 表操作
查看>>
Oracle2
查看>>
hadoop源码svn下载地址
查看>>