`

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"/>
分享到:
评论
发表评论

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

相关推荐

    原创小程序集中地

    【描述】中提到的"博文链接:https://tntxia.iteye.com/blog/111304",虽然没有提供直接的详细信息,但通常博客文章会提供关于技术问题的深入讨论、教程或经验分享。这个链接很可能是作者分享其在小程序开发过程中...

    github入门与实践

    这反映了当前知识产权保护的社会趋势和法律规定,也提醒读者必须遵守相关法律法规,尊重原创者的合法权益。 最后,本书还提到作者和出版社对读者的感谢,以及对帮助本书出版的其他译者和编辑的感激之情。这展现了...

    (原创)我的第一个android项目,男人的福音

    【标题】:“(原创)我的第一个android项目,男人的福音” 这个标题暗示了这是一个关于Android应用开发的项目,特别地,它可能是一个针对男性的应用。"男人的福音"可能是开发者对应用功能的一种营销表述,可能包含了...

    AI伪原创源码完全免费部署即用

    总的来说,这个AI伪原创源码项目结合了前沿的人工智能技术与现代Web开发实践,提供了一种便捷的方式来生成独特的文本内容。无论是内容创作者、SEO专家还是开发者,都能从中受益。通过深入理解并应用这些技术,我们...

    第一篇原创 flash as3.0----第一课时

    【标题】:“第一篇原创 Flash AS3.0——第一课时” 在Flash开发领域,ActionScript 3.0(简称AS3.0)是Adobe Flash ...通过学习和实践,读者将能够掌握如何在Flash中创建互动的按钮,并逐步理解AS3.0的强大功能。

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

    【Django代码最佳实践】是关于如何高效、规范地开发Django项目的指南。本文将详细介绍在Django项目中实现最佳实践的关键步骤,并提供相应的代码结构和原则。 **目录结构** 项目通常应该按照以下结构组织: - 项目...

    hibernate映射心得 原创

    这里的“心得”意味着作者可能分享了一些实践中的技巧、最佳实践或解决问题的方法。 **描述分析:**“NULL 博文链接:https://czwjava.iteye.com/blog/777751” 虽然描述部分没有提供具体信息,但提供了博文链接,...

    【原创】网站SEO增加外链自动优化工具

    因此,使用此类工具时,应遵循SEO最佳实践,注重链接的质量而非数量,确保内容的相关性,并定期检查工具的效果,避免潜在风险。同时,保持网站内容的原创性和用户体验是提升网站自然排名的根本。

    原创歌曲网友翻唱展示系统

    总的来说,"原创歌曲网友翻唱展示系统"是一个集创作、分享、互动于一体的音乐社区平台,它的技术架构涵盖后端开发、数据库设计、前端交互、音频处理等多个方面,对于学习和实践Web应用开发具有很高的参考价值。...

    Simple Browser 简易浏览器(原创)

    总的来说,“Simple Browser 简易浏览器(原创)”是一个涵盖了Web技术、网络通信、用户界面设计等多个领域的软件工程实践项目。通过创建这样一个浏览器,开发者不仅可以深入了解互联网工作的原理,还能提升软件开发和...

    中南大学网络工程实验-服务器搭建实验原创40页超详细手册-之WWW篇

    《中南大学网络工程实验-服务器搭建实验原创40页超详细手册-之WWW篇》是一份专为网络工程学生设计的服务器搭建实践教程,旨在帮助他们深入理解WWW(World Wide Web)服务的核心原理和实际操作。这份40页的手册涵盖了...

    基于ssm原创音乐小程序源码数据库文档.zip

    1. **毕业设计**:这表明该项目是一个学生在毕业阶段完成的综合实践项目,通常要求涵盖软件开发的完整生命周期,包括需求分析、设计、编码、测试和文档编写。 2. **微信小程序**:这是一种轻量级的应用形式,无需...

    【原创】flex控制flash元件

    标题中的“【原创】flex控制flash元件”表明这篇内容是关于使用Adobe Flex来操纵Flash元件的原创技术分享。Flex是一个开源的、基于MXML和ActionScript的框架,用于构建富互联网应用程序(RIAs)。它允许开发者创建...

    jquery-tab(非原创,忘记源码出处了,不好意思)

    《jQuery Tab插件详解及其应用》 ...尽管不是原创,但其背后的设计思路和实践技巧对提升我们的编程技能大有裨益。通过不断学习和实践,我们可以将这些知识应用到自己的项目中,创造出更具吸引力和用户体验的网页应用。

    基于PHP的草莓原创小说系统微信小说平台系统源码.zip

    10. **安全措施**:防止SQL注入、XSS攻击和CSRF攻击的安全编码实践,以及数据加密和传输安全(HTTPS)。 11. **日志与错误处理**:系统应记录操作日志和错误信息,便于问题排查和性能优化。 12. **部署与维护**:...

    Java原创酒店订房系统源码+论文(已通过答辩)

    这个Java原创酒店订房系统源码项目是一个全面的学习资源,涵盖了Web应用开发的多个方面,无论是对于初学者还是经验丰富的开发者,都能从中获取到有价值的知识和实践经验。通过研究源码和论文,可以深入理解Java Web...

    淘书网,电子商务网站,原创

    【淘书网】是一个以电子商务为主题的原创网站设计项目,由一名学生的毕业设计演变而来,并经过了改良和优化。这个项目的代码质量高,编程规范,因此非常适合那些希望学习和理解电子商务网站构建的人士进行研究和实践...

    【原创】struts版 【优优 源创工具下载站】源码+mysql

    这个【原创】Struts版的【优优 源创工具下载站】源码提供了实现网站后台管理功能的实例,结合MySQL数据库,帮助开发者理解和学习如何在实际项目中应用Struts。通过下载并分析这个源码,我们可以深入理解Struts框架的...

    基于jsp的购物网站(原创)

    这个原创的购物网站项目为初学者提供了实践JSP和其他Java Web技术的机会,同时也为有经验的开发者提供了了解如何构建电子商务平台的参考。通过分析和学习这个项目,开发者可以提升自己的技能,并了解实际项目开发中...

Global site tag (gtag.js) - Google Analytics