`

https实践【原创】

阅读更多
这次项目中又用到https,在这里记录一些实践命令,以便后续快速查找。
https的原理很简单,可以看原先转载的一篇文章《https原理浅析》。
简单归纳:
1. 使用https通道加密需要证书密钥对,存在密钥库文件中,可以使用java生成,也可以向第三方证书机构购买。
2. 获取到密钥库keystore文件,并在tomcat等web服务器开启https,密钥库指向keystore文件。
3. 这时已经可以通过https访问了,但是如果是自己使用java生成的证书,浏览器验证提示不安全。服务端可以使用keytool从密钥库导出证书(公钥),浏览器导入证书,就能信任安全了。
4. 如果是java访问,根据https的通讯机制,也是需要验证服务器证书的。这时有两种做法,一种是将服务器导出的证书(公钥)导入到客户端jdk中, 这时客户端也能验证通过。另外一种是重写校验方法,绕过证书验证。两种做法各有利弊,第一种比较安全,防止伪冒;第二种比较方便,特别是生产上部署很多节点的时候,每个节点导入会比较麻烦。(当然如果购买比较大的第三方机构的证书,jdk中已经灌入根证书,就不需要这么麻烦了)。
SSLContext sslContext = new SSLContextBuilder().loadTrustMaterial(null, new TrustStrategy() {
	                 //信任所有,绕过认证
	                 public boolean isTrusted(X509Certificate[] chain,
	                                 String authType) throws CertificateException {
	                     return true;
	                 }
	             }).build();

以下记录命令:
1. 生成密钥对
keytool -genkey -v -alias openapi -keyalg RSA -keystore D:\work\data\key\openapi.keystore -validity 36500
2. 导出证书
keytool -keystore D:\work\data\key\openapi.keystore -export -alias tomcat -file D:\home\openapi.cer
3. java客户端导入证书
keytool -import -alias openapi -keystore %java_home%/jre/lib/security/cacerts -file D:\home\openapi.cer -trustcacerts
4. tomcat开启https
<Connector port="8443" maxHttpHeaderSize="8192" protocol="org.apache.coyote.http11.Http11Protocol"
    	         SSLEnabled="true" 
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" disableUploadTimeout="true"
               acceptCount="100" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS" 
               keystoreFile="/usr/local/cert/openapi.keystore" keystorePass="mypassword"/>
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    【Django】代码最佳实践【原创】

    目录 参考 概要 目录结构 API返回格式 步骤 1. 建立虚拟环境 2. 安装和建立Django 3. 新建应用App 4. 修改settings.py ...https://www.freebuf.com/column/165233.html https://www.freebuf.com/column/165968

    原创歌曲分享平台--论文_Java实战项目_SpringBoot(项目源码+数据库脚本+开发说明文档+LW+PPT+在线预览)

    https://zhg.rucoding.online 内容概要: 本系统源代码基于Spring Boot、Vue.js、Element UI和MySQL,提供一个通用的Web应用程序框架。通过该系统源代码,学习如何使用这些技术构建可扩展的管理系统。涵盖前端开发...

    大数据技术原理及应用课实验5 :MapReduce初级编程实践

    版权声明:本文为CSDN博主「Blossom i」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/weixin_60530224/article/details/135632280

    【推荐】2021年GOPS全球运维大会 - 上海站PPT汇总(共60份).zip

    版权声明:本文为CSDN博主「智慧城市行业动态」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/mengchensubi/article/details/122526501

    Spring+3.x+企业应用开发实践(2)

    Spring 3.0是Spring在积蓄了3年之久后,隆重推出的一个重大升级版本,进一步加强了Spring作为Java领域第一开源平台的翘楚地位。 Spring 3.0引入了众多Java...版权声明:本文为博主原创文章,转载请附上博文链接!

    GO新闻-非原创

    GoCN每日新闻(2019-12-27) 1. Go 开发关键技术指南 | Go 面向失败编程 ...3. Golang 错误处理最佳实践 https://medium.com/@dche423/golang-error-handling-best-practice-cn-42982bd7

    华工复试答辩PPT,适合考研复试的同学,尤其是计算机/人工智能/通信

    2. 校园/社会实践 3. 学习/科研项目 4. 读研规划 【声明】 声明:为原创设计,未经同意请勿商用或二次转卖 【博客】 相关的预览及展示的博客可浏览:https://blog.csdn.net/qq_41895003/article/details/136922474 ...

    AntDesignrplib.zip

    Ant Design源自蚂蚁金服体验技术部的后台产品开发,经过大量的项目实践和总结,希望能抽象出一套企业级的交互视觉规范,统一后台项目的前端 UI 设计,屏蔽各种不必要的设计差异和前端实现成本,解放设计和前端开发...

    Hadoop实战

    《Hadoop实战》作为云计算所青睐的...--------------------- 作者:cf406061841 来源:CSDN 原文:https://blog.csdn.net/cf406061841/article/details/79396391 版权声明:本文为博主原创文章,转载请附上博文链接!

    奖学金答辩模板,在备注中带替换规则和答辩稿子

    2. 校园/社会实践 3. 专业学习 4. 科研项目 5. 实习经历 【声明】 声明:为原创设计,未经同意请勿商用或二次转卖 【主要】 这里主要是重在强调自己在专业及项目上的成果,所以会把非学术/技术类放在前面。当然,...

    简易人事管理系统(pyqt5+mysql)

    它单指汇集成功企业先进的人力资源管理理念、人力资源管理实践、人力资源信息化系统建设的经验,以信息技术实现对企业人力资源信息的高度集成化管理,为中国企业使用的人力资源管理解决方案。核心价值在于将人力资源...

    JSP网上招标系统源码

    本文从理论和实践两个角度出发,对一个具有数据分析功能的下沙派威客网进行设计与实现分析。论文首先较为详尽地介绍了面向对象分析与设计的有关概念与技术,特别深入介绍了在本系统中运用到的知识,如:面向对象的...

    租赁合同租赁物件清单导入模板.xls

    一路走来,深感书本与实践脱离之痛,市面上种类繁多的编程辅导书,大都力求面面俱到,动辄数百页,难免令初学者望而生畏。鉴于此,作者推出了本达人课,试图以一种对话的形式,带领读者走进 Python。 本课程是一个...

    软件工程整体思维导图.xmind

    软件工程实践者的研究方法第1到11章,17 18章节的思维导图。是软件工程导论课程小作业,非常全面具体,又小组同学分工合作完成。注意用xmind打开哟。更多资源分享 ...

    leetcode安卓-Note:学习笔记

    leetcode安卓 Ⅰ Ⅱ Ⅲ Ⅳ Ⅴ Ⅵ Ⅶ Ⅷ Ⅸ ...编码实践 ...笔记不是从网上到处拼凑而来,除了少部分引用书上和技术文档的原文,其余都是笔者的原创。 笔记内容是笔者一个字一个字打上去的,难免会有一

    awesome-go-zh:Go资源精选中文版(含中文图书大全)

    编程语言方向要求对语言对语言解释器(如py / js / lua / wasm等),工具链,配套SDK有一定的兴趣和实践经验。欢迎各位同学咨询或推荐(推荐成功独享全额推荐红包)。联系方式 , Go中国讨论组: ://groups.google....

    seata1.3.0.zip

    版权声明:本文为CSDN博主「zhengcs已被占用」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/zcs20082015/article/details/107092936

    asp.net知识库

    翻译MSDN文章 —— 泛型FAQ:最佳实践 Visual C# 3.0 新特性概览 C# 2.0会给我们带来什么 泛型技巧系列:如何提供类型参数之间的转换 C#2.0 - Object Pool 简单实现 Attributes in C# 手痒痒,也来个c# 2.0 object ...

Global site tag (gtag.js) - Google Analytics