使用keytool生成Tomcat证书

news2025/1/10 21:02:12

一、HTTPS原理

1、HTTP、HTTPS、SSL、TLS介绍与相互关系

(1)HTTP:平时浏览网页时候使用的一种协议。HTTP协议传输的数据都是未加密的(明文),因此使用HTTP协议传输隐私信息非常不安全。

(2)HTTPS:为了保证隐私数据能加密传输,采用SSL/TLS协议用于对HTTP协议传输的数据进行加密,也就是HTTPS。

(3)SSL:SSL(Secure Sockets Layer)协议是由网景公司设计,后被IETF定义在RFC 6101中。目前的版本是3.0。

(4)TLS:TLS可以说是SSL的改进版。是由IETF对SSL 3.0进行了升级而出现的,定义在RFC 2246。实际上我们现在的HTTPS都是用的TLS协议。

2、TLS/SSL特点

(1)HTTPS在传输数据之前需要客户端(浏览器)与服务端(网站)之间进行一次握手,在握手过程中将确立双方加密传输数据的密码信息。

(2)TLS/SSL中使用了非对称加密,对称加密以及HASH算法。

其中非对称加密算法用于在握手过程中加密生成的密码,对称加密算法用于对真正传输的数据进行加密,而HASH算法用于验证数据的完整性。

(3)TLS握手过程中如果有任何错误,都会使加密连接断开,从而阻止了隐私信息的传输。

二、证书的生成

下面演示如何使用 Tomcat 服务器,通过HTTPS进行双向认证。证书的话这里使用 keytool 生成自签名证书。

(注意:如果真正的商用系统建议使用向CA付费购买的证书。因为如果使用自签名证书的话,客户端对服务器的验证其实是抛给用户来判断(用户自己决定信任还是不信任))

1、生成服务器证书

使用keytool为Tomcat生成证书

keytool -genkey -v -alias tomcat -keyalg RSA -keystore G:\tomcat.keystore -validity 36500

(参数说明:“G:\tomcat.keystore”含义是将证书文件的保存路径,证书文件名称是tomcat.keystore;“-validity 36500”含义是证书有效期,36500表示100年,默认值是90天;“tomcat”为自定义证书名称)

输入密钥库口令:keystore密码(假设使用sourcebyte)

您的名字与姓氏是什么:必须是TOMCAT部署主机的域名或者IP[如:sourcebyte.cn](就是你将来要在浏览器中输入的访问地址),否则浏览器会弹出警告窗口,提示用户证书与所在域不匹配。在本地做开发测试时,应填入“localhost”。

输入 <tomcat> 的密钥口令:直接回车

2、生成客户端证书

为浏览器生成证书,以便让服务器来验证它。为了能将证书顺利导入至IE和Firefox,证书格式应该是PKCS12,因此,使用如下命令生成:

keytool -genkey -v -alias mykey -keyalg RSA -storetype PKCS12 -keystore G:\mykey.p12

3、让服务器信任客户端证书

服务器要信任客户端证书,必须把客户端证书添加为服务器的信任认证。由于不能直接将PKCS12格式的证书库导入,必须先把客户端证书导出为一个单独的CER文件,使用如下命令:

keytool -keystore G:\tomcat.keystore -export -alias tomcat -file G:\tomcat.cer

三、证书的使用

打开Tomcat根目录下的/conf/server.xml,找到Connector port="8443"配置段,修改为如下:

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
    SSLEnabled="true" maxThreads="150" scheme="https"
    secure="true" clientAuth="true" sslProtocol="TLS"
    keystoreFile="G:\\tomcat.keystore" keystorePass="sourcebyte"/>

但由于是自签名的证书,所以浏览器会警告我们不安全,选择继续好了。由于是自签名的证书,为避免每次都提示不安全。这里双击tomcat.cer安装服务器证书。将证书填入到“受信任的根证书颁发机构”。再次重新访问服务器,会发现没有不安全的提示了,同时浏览器地址栏上也有个“锁”图标,表示本次会话已经通过HTTPS双向验证。

 

如若转载,请注明出处:开源字节   https://sourcebyte.cn/article/270.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/20103.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

人工智能学习相关笔记

文章目录留出法(hold-out)Artifact (error)理解交叉熵损失函数(CrossEntropy Loss)信息量信息熵相对熵(KL散度)交叉熵交叉熵在单分类问题中的应用回顾知识蒸馏公式对抗学习随机投影(Random Projection)概述基本实现sklearn中的随机投影独立成分分析(ICA)ICA算法ICA 应用sklearn…

tslib库编译与移植

tslib库编译与移植 1.tslib库简介 tslib 是电阻式触摸屏用于校准的一个软件库&#xff0c;是一个开源的程序&#xff0c;能够为触摸屏驱动获得的采样提供诸如滤波、去抖、校准等功能&#xff0c;通常作为触摸屏驱动的适配层&#xff0c;为上层的应用提供了一个统一的接口。 2…

数据结构——顺序表

目录 一.简介 线性表 顺序表 二.结构体与初始化 1.创建 2.初始化 三.功能实现 1.打印 2.销毁 3.扩容 4.尾插 5.尾删 6.头插 7.头删 8.查找元素 9.下标位置的插入与某一数据前的插入 10.下标位置的删除与某一数据的删除 11.头插、头删、尾插、尾删的常态化 一.简…

模块电路选型(1)----电源模块

系列文章目录 1.电源模块 2.主控模块 3.传感器模块 4.通信模块 5.电机驱动模块 6.存储模块 7.人机交互模块 文章目录前言一、DCDC电源模块1、LM2596 DCDC降压模块设计二、LDO电源模块1、1117芯片前言 送给大学毕业后找不到奋斗方向的你&#xff08;每周不定时更新&#x…

Spring Data JPA之Spring boot整合JPA进行CRUD

Spring boot整合JPA进行CRUD前言系列博客本博客的实现demo环境配置1.POM依赖2.application.yml文件完整的项目结构代码实现实体类启动类创建数据访问层使用Spring Data JPA 创建带条件的CRUD编写业务层创建UserController类运行测试插入用户数据删除用户数据修改数据查询数据根…

kubernetes(K8S)学习笔记P2:搭建K8s集群2种方式

搭建K8s集群&#xff1a;2种方式2.搭建K8s集群--->kubeadm2.1环境准备2.1.1关闭防火墙2.1.2关闭seliux2.1.3关闭swap分区2.1.4设置主机名称2.1.5将桥接的IPv4流量传递到iptables的链2.1.6时间同步2.2三台虚拟机都安装Docker2.3添加阿里云YUM软件源2.4安装/kubeadm/kubelet2.…

dubbo:从零理解及搭建dubbo微服务框架(一)【附带源码】

0.引言 dubbo作为阿里巴巴开源的微服务框架&#xff0c;提供了高性能的RPC调用。同时因为有阿里的背书&#xff0c;在国内市场得到了广泛应用&#xff0c;dubbo的开源工作在2018年2月阿里将项目捐献给apache基金会后&#xff0c;得到了更加广大的发展。 之前我们讲解了spring…

【图像分割】2021-Swin-Unet CVPR

【图像分割】2021-Swin-Unet CVPR 论文题目&#xff1a;Swin-Unet: Unet-like Pure Transformer for Medical Image Segmentation 论文链接&#xff1a;https://arxiv.org/abs/2105.05537 论文代码&#xff1a;https://github.com/HuCaoFighting/Swin-Unet 发表时间&#xff1a…

财政政策与货币政策

财政政策与货币政策 – 潘登同学的宏观经济学笔记 文章目录财政政策与货币政策 -- 潘登同学的宏观经济学笔记中国财政状况中国的财政盈余乘数效应还是李嘉图等价“乘数效应”还是“挤出效应”&#xff08;crowding out&#xff09;——“破窗理论”的启示货币政策中国货币的状况…

GreaalVM编译springboot编译springboot

GreaalVM编译springboot编译springboot 原文转自&#xff1a;https://lingkang.top/archives/greaalvm%E7%BC%96%E8%AF%91springboot https://lingkang.top/archives/greaalvm%E7%BC%96%E8%AF%91springboot window下使用GreaalVM编译springboot存在很多坑&#xff0c;主要是…

IfcOpenShell - Python 2022最新安装步骤 兼谈IFC的理解与认识

前言 我之前2020年写了一个IfcOpenShell - Python的安装教程&#xff0c;相信不少对IFC感兴趣的朋友已经看过。两年多以后发生了很多事情&#xff0c;我的工作重心也不再是IFC IFCXML。目前我对IFC的理解就是“底层数据库”&#xff0c;以他为数据库我可以做很多尝试&#xff…

P1113 杂务

分析:可以把每个任务看成都一个节点,如果有2个任务a,b,如果a是b的准备工作,那么就在a,b之间连一条有向边。由于互相没有关系的杂务可以同时工作,所以发现所有杂务都被完成的最短时间取决与最晚被完成的那个任务&#xff0c;于是需要找到最晚被完成任务的时间。 因为题目中有一…

万字详解C++避坑指南总结

前言 C是一门古老的语言&#xff0c;但仍然在不间断更新中&#xff0c;不断引用新特性。但与此同时C又甩不掉巨大的历史包袱&#xff0c;并且C的设计初衷和理念造成了C异常复杂&#xff0c;还出现了很多不合理的“缺陷”。 本文主要有3个目的&#xff1a; 1. 总结一些C晦涩难懂…

[计算机毕业设计]聚类分析算法

前言 &#x1f4c5;大四是整个大学期间最忙碌的时光,一边要忙着准备考研,考公,考教资或者实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科同学来说是充满挑战。为帮助大家顺利通过…

this 的五种绑定方式(默认 / 隐式 / 显式 / new 构造函数 / 箭头函数)

目录 1. this 的五种绑定方式 1.1 默认绑定 1.1.1 基本概念 1.1.2 严格模式下的默认绑定 1.1.3 let、const、var 变量的默认绑定 1.1.4 函数作用域中的 this 指向 1.2 隐式绑定 1.2.1 关于 this 指向最后调用函数的那个对象&#xff0c;该怎么理解&#xff1f; 1.2.2 …

Hive三种模式安装部署

文章目录1. 内嵌模式安装2. 本地模式安装2.1 Mysql安装2.2 Hive安装配置3. 远程模式安装1. 内嵌模式安装 安装准备 下载hive&#xff1a;pass将文件复制到安装目录下&#xff1a; 解压安装包&#xff1a;tar zxvf apache-hive-3.1.2-bin.tar.gz修改名字&#xff1a;mv apache-h…

【序列召回推荐】(task3)GNN召回之SR-GNN

note 关于图深度学习算法的简单回顾&#xff1a; 一开始是经典的word2vec&#xff08;以skip-gram为例&#xff0c;先取周围词随机初始化的embedding&#xff0c;进行平均池化后与中心词embedding进行点积&#xff09;通过周围词预测中心词&#xff08;多分类任务&#xff09;…

(4)paddle---PCB检测的例子

1、主要参考 &#xff08;1&#xff09;大佬教程 基于PaddleDetection的PCB瑕疵检测_AI Studio的博客-CSDN博客 &#xff08;2&#xff09;blibli视频 253-14_PCB电路板缺陷检测_项目配置文件_dec_哔哩哔哩_bilibili &#xff08;3&#xff09;coco数据集说明 『深度应用…

(最新+详细+Pycharm远程调试GUI程序)解决qt.qpa.xcb: could not connect to display问题

&#xff08;最新详细Pycharm远程调试GUI程序&#xff09;解决qt.qpa.xcb: could not connect to display问题出现原因解决方法步骤下载MobaXTerm连接服务器安装Xorg和打开X11-forwarding附录设置共享目录修改环境出现原因 在ubuntu服务器上运行cv.imshow()方法时就会报以下错…

java计算机毕业设计ssm贫困区教育资源捐赠平台element vue前后端分离

项目介绍 随着时代的发展,互联网和计算机技术,带动了整个社会的发展,方便了我们的生活。贫困区教育资源捐赠管理平台是使用JAVA的SSM技术,MySQL作为数据库开发,用户通过网站了解贫困区情况,在线帮助贫困人群,实现贫困区教育资源捐赠管理。首先对本论文进行分析后,提出平台的相…