随着电脑的普及,上网已经成为常态,我们打开浏览器输入网址就能查看到自己关注的信息,传统使用的是HTTP协议,但是这种协议存在很大的弊端,为了规避这样的缺陷,提高数据传输过程中的安全性,于是就推出了HTTPS协议,HTTPS协议如何实现数据安全传输的呢?

从上图看,加密从客户端出来就已经是密文数据了,当用户在任何网络链路上接入时,即使被监听,由于黑客截获的数据密文数据,无法在现有条件下还原出原始数据信息,从而保证了数据传输的安全性。接下来给大家讲解如何在Tomcat服务器(以Tomcat 7.0为例)中配置使用HTTPS协议:

第一步:使用JDK自带的keytool工具来生成密钥库文件

a、打开DOS窗口,输入如下命令:

keytool -genkeypair -keyalg "RSA" -keystore "D:\gaohuanjie.keystore"

b、点击回车键,出现下图:

c、输入相应信息——每个问题项输完后,点击回车键可进入到下一个问题项,如下图:

注意:

1、输入口令时,所输入的密码不显示,上面所输入的密码为gaohuanjie;

2、回答“您的名字与姓氏是什么?”的时候,要输入域名,比如localhost、127.0.0.1、Tomcat所在计算机IP地址或者购买的域名(比如www.gaohuanjie.net.cn或*.gaohuanjie.net.cn,其中最后一个中的*为通配符,可以匹配任意以.gaohuanjie.net.cn结尾的域名)。

3、上图最后一步,遇到“(如果和 密钥库口令相同,按回车):”时,直接回车即可。

d、至此第一步完成,此时D盘根目录会存在一个名为“gaohuanjie.keystore”的文件。

上面方法借助DOS窗口生成了密钥库文件,这里有一种更简单的方法:《终结者:HTTPS在Tomcat中的使用(三)——Java代码生成密钥库文件及其对应的安全证书》

第二步:

a、打开Tomcat安装根目录,找到conf下的server.xml文件,如下图:

b、使用记事本打开软件,找到如下已经被注释的代码:

c、将上图红框中的代码换成如下代码:

<Connector port="443" protocol="org.apache.coyote.http11.Http11Protocol" SSLEnabled="true"  maxThreads="150" scheme="https" secure="true"  clientAuth="false" sslProtocol="TLS"   keystoreFile="D:\gaohuanjie.keystore"  keystorePass="gaohuanjie" />

注意:

1、http协议的默认端口是80, https的默认端口是443,为了更方便的访问资源,这里将上图红框中8443改成了443;

2、keystoreFile属性用于指定第一步所生成证书的位置,这里把生成好的证书放在了D盘根目录;

3、keystorePass属性用于指定证书的密码,由于生成证书时密码为gaohuanjie,所以该属性的属性值为gaohuanjie

d、保存该server.xml文件,至此第二步完成。

第三步:

a、启动Tomcat,在Google浏览器中输入https://localhost/,然后回车会看到下图:

注意:也可以是https://127.0.0.1/

b、点击上图“高级”,得到下图:

c、点击上图“继续前往localhost(不安全)”,得到下图:

遗留问题:上面当我们使用https协议访问网站资源时,经历了一些小“磨难”,之所以这样是因为浏览器端没有导入该站点的“安全证书”,导入安全证书前,需要先制作证书,具体操作参见博客《终结者:HTTPS在Tomcat中的使用(二)——制作安全证书与浏览器端安全证书的安装》

Tomcat—HTTPS之生成密钥库文件与配置Tomcat服务器相关推荐

  1. android studio秘钥库文件不存在,获得SHA1以及错误java.lang.Exception: 密钥库文件不存在: keystore...

    一:在Android studio中Terminal中切换到相应的盘符下,我的jks文件在D盘,输入keytool -v -list -keystore myfirst.jks   "myf ...

  2. 如何检查密钥库文件中的证书名称和别名?

    本文翻译自:How to check certificate name and alias in keystore files? I have a bunch of .keystore files a ...

  3. keytool 错误: java.lang.Exception: 密钥库文件不存在: keystore

    keytool 错误: java.lang.Exception: 密钥库文件不存在: keystore 通过Android Studio编译器获取SHA1 第一步.打开Android Studio的T ...

  4. keytool 错误: java.lang.Exception: 密钥库文件存在, 但为空: E:\xxx\xxx\.jks

    android的报错提示:keytool 错误: java.lang.Exception: 密钥库文件存在, 但为空: E:\example\demo\arsdk.jks 错误在哪,可以发现: E:\ ...

  5. linux编译ffmpeg成so,「ffmpeg」一 mac 环境下编译ffmpeg,生成so库文件

    1.下载ffmpeg源码,官网,我这里直接采用git 方式下载: 下载ffmpeg.png 终端输入git命令: 静静等待~ 最后下载的版本为3.4.6 . image.png 这里注意一下,刚开始我 ...

  6. 百度地图调用 keytool 错误:java.lang.Exception: 密钥库文件不存在、getLocType 167(4.9E-324)错误

    百度地图调用中遇到的坑 1. keytool 错误:java.lang.Exception: 密钥库文件不存在 2.getLocType:167 错误 获取坐标(4.9E-324) 3.getAddr ...

  7. mac下keytool 错误: java.lang.Exception: 密钥库文件不存在

    最近项目需要上线, 其中一个项目 用旧项目改成新的, 在生打包的时候, 我忽略了一个问题, 导致项目还是之前的应用,找了一下发现没有改module里的applicationId没有改, 一定一定要改 ...

  8. 在Keil C51下生成LIB库文件以及如何使用LIB库文件

      如何生成LIB库文件 1.首先准备好生成LIB库文件对应的.c和.h文件,在这里用到的.c和.h文件分别是: "reg303.h" "rjwf303_flash.h& ...

  9. automake生成静态库文件_Automake 详解

    automake配置 一.安装 命令:sudo apt-get install automake 二.配置过程 1. 使用Autoscan工具生成configure.ac文件 命令: autoscan ...

  10. vscode里面如何配置库_VSCode中C/C++库文件的配置

    VSCode中C/C++库文件的配置 之前一直在是用sublime做主要编辑器,现在主要使用VSCode,毕竟大厂制作,从目前的使用情况来看,我更喜欢使用VSCode编辑器. 有时候会用VScode来 ...

最新文章

  1. 【数字信号处理】相关函数应用 ( 时差估计 | TOA 时差估计使用场景 | TDOA 时差估计使用场景 )
  2. 【Android 电量优化】电量优化 ( JobScheduler | JobService | AsyncTask )
  3. img元素高度多出来的几像素
  4. 东京理科大学 计算机系,东京理科大学
  5. 超适合新手的Oracle查询语句
  6. 再见IE浏览器(IE之死2021 年 8 月 17 日)
  7. Pixhawk之姿态控制篇(1)_源码算法分析(超级有料)
  8. IDEA如何在包下建立子包
  9. [译]JavaScript async / await:好处、坑和正确用法
  10. iterator 怎么使用甀_Iterator的使用
  11. 2019 Go 开发者路线图,请收下这份指南!
  12. hdu 2838求逆序数开了两个数组
  13. ZOJ 1606 Count the Colors (线段数染色)
  14. 一篇关于原生 js 开发一款插件的前端教程
  15. C语言中 pow函数的使用
  16. 好用的浏览器主页有哪些?
  17. java duplicate key_java.lang.IllegalStateException: Duplicate key 1
  18. laravel 将汉字转化成拼音的库
  19. Matplotlib下plt常用指令总结
  20. win10怎么录屏幕视频带声音?有哪些需要注意的地方?

热门文章

  1. mac install: /usr/bin/unrar: Operation not permitted
  2. 关于eclipse中maven项目的问题
  3. 德州扑克的思考和实验
  4. 对话周鸿祎:从程序员创业谈起
  5. IOS 学习笔记(2) 视图UINavigationController
  6. redis string底层数据结构
  7. CommVault徐永兴谈软件架构决定服务优势
  8. JS判断浏览器语言及终端类型(android/ios)
  9. wireshark协议
  10. Java集合与数组实现升序排序的算法设计