IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> tomcat配置HTTPS方式(单向) -> 正文阅读

[Java知识库]tomcat配置HTTPS方式(单向)

一、生成数字证书

1、进入到jdk下的bin目录

2、输入如下指令

keytool -v -genkey -alias tomcat -keyalg RSA -keystore f:/server.keystore??-validity 3650

备注:

d:/tomcat.keystore是将生成的tomcat.keystore放到d盘根目录下。

"-validity?36500”含义是证书有效期,36500表示100年,默认值是90天

注意若要放到c盘,在win7系统下,需要以管理员身份进入到命令行中进行操作,否则是无法创建tomcat.keystore的。本例放到d盘下。?
如何以管理员身份进入到命令行下呢?开始->搜索框中输入cmd->等待(注意不回车)->出现cmd.exe->右键“以管理员身份运行”即可。

?3、输入keystore密码

密码任意,此处以winchampion为例,要记住这个密码,之后在进行server.xml配置时需要使用。

4、输入名字、组织单位、组织、市、省、国家等信息

注意事项:

A、Enter keystore password:此处需要输入大于6个字符的字符串

B、“What is your first and last name?”这是必填项,并且必须是TOMCAT部署主机的域名或者IP[如:gbcom.com?或者?10.1.25.251],就是你将来要在浏览器中输入的访问地址

C、“What is the name of your organizational unit?”、“What is the name of your organization?”、“What is the name of your City or Locality?”、“What is the name of your State or Province?”、“What is the two-letter country code for this unit?”可以按照需要填写也可以不填写直接回车,在系统询问“correct?”时,对照输入信息,如果符合要求则使用键盘输入字母“y”,否则输入“n”重新填写上面的信息

D、Enter key password for <tomcat>,这项较为重要,会在tomcat配置文件中使用,建议输入与keystore的密码一致,设置其它密码也可以

l??完成上述输入后,直接回车则在你在第二步中定义的位置找到生成的文件

5、输入之后会出现确认的提示

此时输入y,并回车。此时创建完成keystore。?
进入到D盘根目录下可以看到已经生成的tomcat.xml

6、进入tomcat文件夹?
找到conf目录下的sever.xml并进行编辑

7、编辑?

Windows:

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"?
???? maxThreads="150" scheme="https" secure="true"?
???? clientAuth="false" keystoreFile="d:/tomcat.keystore"?
???? keystorePass="deleiguo" sslProtocol="TLS" />

Linux:

<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
               maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
               keystoreFile="/usr/local/tomcat8080/.keystore"
               keystorePass="winchampion" clientAuth="false" sslProtocol="TLS" />

注:?
方框中的keystore的密码,就是刚才我们设置的“winchampion”.

编辑完成后关闭并保存sever.xml

8、Tomcat启动成功后,使用https://127.0.0.1:8443 访问页面

页面成功打开即tomcat下的https配置成功。

9、应用程序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>

10、生成安全证书文件

keytool -export -alias tomcat -file F:/file.cer -keystore F:/server.keystore -validity 3650

然后输入d:/tomcat.keystore中的keystore密码

-file F:/file.cer 即为生成的cer文件,可直接点击安装

11、注意事项:

(1)????生成证书的时间,如果IE客户端所在机器的时间早于证书生效时间,或者晚于有效时间,IE会提示“该安全证书已到期或还未生效”

(2)????如果IE提示“安全证书上的名称无效或者与站点名称不匹配”,则是由生成证书时填写的服务器所在主机的域名“您的名字与姓氏是什么?”/“What is your first and last name?”不正确引起的

?

12、遗留问题:

(1)如果AC主机不能通过域名查找,必须使用IP,但是这个IP只有在配置后才能确定,这样证书就必须在AC确定IP地址后才能生成

(2)证书文件只能绑定一个IP地址,假设有10.1.25.250?和?192.168.1.250?两个IP地址,在证书生成文件时,如使用了10.1.25.250,通过IE就只能使用10.1.25.250?来访问AC-WEB,192.168.1.250是无法访问AC-WEB的。

二、导入公钥

?1、输入命令

keytool -import -file D:/file.cer –keystore F:/cacerts;

2、然后将cacerts文件复制到客户端JAVA_HOME的jre\lib\security目录下

三、客户端调用代码

package com.winchampion.taozhugong.ws;

import java.net.URL;

import javax.xml.namespace.QName;
import javax.xml.ws.Service;


public class TestCompanyService {
	static {
	    //for localhost testing only
	    javax.net.ssl.HttpsURLConnection.setDefaultHostnameVerifier(
	    new javax.net.ssl.HostnameVerifier(){
 
	        public boolean verify(String hostname,
	                javax.net.ssl.SSLSession sslSession) {
	        	System.out.println(hostname);
	            if (hostname.equals("localhost")) {
	                return true;
	            }
	            return false;
	        }
	    });
	}
	
	public static void main(String[] args) {
		/*CompanyServiceImplService service=new CompanyServiceImplService();
		System.out.println(service);
		com.winchampion.taozhugong.ws.client.CompanyService client= service.getCompanyServiceImplPort();
		//System.out.println(client.getCompanyInfo("上海通慧塑料厂", "310115000650043", "上海市浦东新区唐镇红星路598号","徐龙德","310224195607096617"));
		System.out.println(client.getCompanyInfo("上海通慧塑料厂", "310115000650043", "", "", ""));
		*/
		
		try {
		
			URL url = new URL("https://localhost:8443/CompanyPro/CompanyService?wsdl");
			
	        
			QName qname = new QName("http://ws.taozhugong.winchampion.com/", "CompanyServiceImplService");
			Service service = Service.create(url, qname);
			CompanyService client = service.getPort(CompanyService.class);
	        System.out.println(client.getCompanyInfo("上海通慧塑料厂", "310115000650043", "", "", ""));
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

}

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-07-22 14:00:25  更:2021-07-22 14:02:44 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/3 22:58:41-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码