我的编程空间,编程开发者的网络收藏夹
学习永远不晚

怎么为Web添加HTTPS支持

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

怎么为Web添加HTTPS支持

这篇文章主要讲解了“怎么为Web添加HTTPS支持”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么为Web添加HTTPS支持”吧!

什么是https

要说https我们得先说SSL(Secure Sockets Layer,安全套接层),这是一种为网络通信提供安全及数据完整性的一种安全协议,SSL在网络传输层对网络连接进行加密。SSL协议可以分为两层:SSL记录协议(SSL Record Protocol),它建立在可靠的传输协议如TCP之上,为高层协议提供数据封装、压缩、加密等基本功能支持;SSL握手协议(SSL Handshake Protocol),它建立在SSL记录协议之上,用于在实际数据传输开始之前,通信双方进行身份认证、协商加密算法、交换加密密钥等。在Web开发中,我们是通过HTTPS来实现SSL的。HTTPS是以安全为目标的HTTP通道,简单来说就是HTTP的安全版,即在HTTP下加入SSL层,所以说HTTPS的安全基础是SSL,不过这里有一个地方需要小伙伴们注意,就是我们现在市场上使用的都是TLS协议(Transport Layer Security,它来源于SSL),而不是SSL,只不过由于SSL出现较早并且被各大浏览器支持因此成为了HTTPS的代名词。你可以把HTTPS和SSL的关系理解成iPhone和富土康的关系,大概就是这样哈。

证书生成

使用SSL需要我们先生成一个证书,这个证书我们可以自己生成,也可以从SSL证书授权中心获得,自己生成的不被客户端认可,从授权中心获得的可以被客户端认可,提供SSL授权证书的服务商有很多,小伙伴们有兴趣可以自行查找,我这里以自己生成的证书为例。
生成方式也很简单,直接使用java自带的命令keytool来生成,生成命令如下:

keytool -genkey -alias tomcat  -storetype PKCS12 -keyalg RSA -keysize 2048  -keystore keystore.p12 -validity 3650

这里涉及到几个参数的含义我简单说一下:
1.-storetype 指定密钥仓库类型
2.-keyalg 生证书的算法名称,RSA是一种非对称加密算法
3.-keysize  证书大小
4.-keystore 生成的证书文件的存储路径
5.-validity 证书的有效期

OK,执行完上面一行命令后,在你的系统的当前用户目录下会生成一个keystore.p12文件(如果你修改了证书文件的名称那就是你修改的名字),将这个文件拷贝到我们项目的根目录下,然后修改application.properties文件,添加HTTPS支持。在application.properties中添加如下代码:

server.ssl.key-store=keystore.p12server.ssl.key-store-password=111111server.ssl.keyStoreType=PKCS12server.ssl.keyAlias:tomcat

第一行指定签名文件,第二行指定签名密码,第三行指定密钥仓库类型,第四个是别名。OK,这样配置完成之后我们就可以通过HTTPS来访问我们的Web了,访问结果如下:
怎么为Web添加HTTPS支持

当然,这里我在CustomServletContainer类中将默认端口修改为8443了

HTTP自动转向HTTPS

光有HTTPS肯定还不够,很多用户可能并不知道,用户有可能继续使用HTTP来访问你的网站,这个时候我们需要添加HTTP自动转向HTTPS的功能,当用户使用HTTP来进行访问的时候自动转为HTTPS的方式。这个配置很简单,在入口类中添加相应的转向Bean就行了,如下:

   @Bean    public EmbeddedServletContainerFactory servletContainer() {        TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory() {            @Override            protected void postProcessContext(Context context) {                SecurityConstraint constraint = new SecurityConstraint();                constraint.setUserConstraint("CONFIDENTIAL");                SecurityCollection collection = new SecurityCollection();                collection.addPattern("/*");                constraint.addCollection(collection);                context.addConstraint(constraint);            }        };        tomcat.addAdditionalTomcatConnectors(httpConnector());        return tomcat;    }    @Bean    public Connector httpConnector() {        Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");        connector.setScheme("http");        //Connector监听的http的端口号        connector.setPort(8080);        connector.setSecure(false);        //监听到http的端口号后转向到的https的端口号        connector.setRedirectPort(8443);        return connector;    }

这个时候当我们访问http://localhost:8080的时候系统会自动重定向到https://localhost:8443这个地址上。这里的Connector实际就是我们刚刚接触jsp时在xml中配置的Tomcat的Connector节点。

感谢各位的阅读,以上就是“怎么为Web添加HTTPS支持”的内容了,经过本文的学习后,相信大家对怎么为Web添加HTTPS支持这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

怎么为Web添加HTTPS支持

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

怎么为Web添加HTTPS支持

这篇文章主要讲解了“怎么为Web添加HTTPS支持”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么为Web添加HTTPS支持”吧!什么是https要说https我们得先说SSL(Secur
2023-06-19

springboot添加SSL证书,支持https与http

文章目录 一、添加ssl证书二、配置文件三、配置同时支持HTTPS与HTTP四、启动 一、添加ssl证书 将证书文件放在/resource目录下 二、配置文件 修改配置文件 server: ssl: #
2023-08-30

怎么在SpringBoot中添加JSP支持

今天就跟大家聊聊有关怎么在SpringBoot中添加JSP支持,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。序言:SpringBoot默认不支持JSP,如果想在项目中使用,需要进行相
2023-05-31

Spring boot应用怎么支持https

本篇文章为大家展示了Spring boot应用怎么支持https,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。首先使用命令行生成一个keystore文件:keytool -genkey -alias
2023-06-04

解析为Cocos2D-X添加手势支持的操作流程

编程学习网:随着时代的发展,我们在手机上接触到的游戏也慢慢向手势操控发展,那么在游戏开发中要如何实现Cocos2D-X视图的手势操控呢?本篇教程为你揭秘。
解析为Cocos2D-X添加手势支持的操作流程
2024-04-23

Win8手动为IE10添加Flash支持以便浏览网站

Win8系统的兼容性问题一直被用户所诟病,在Win8系统IE10浏览器下,用户发现部分网站不支持Flash,这是因为微软全新的兼容性视图列表自动屏蔽小部分体验差的网站,那么如果要浏览这些网站该怎么办呢?步骤:1、首先打开本地文件夹,C:Us
2022-06-04

百度站内搜索不支持https怎么办

这篇文章将为大家详细讲解有关百度站内搜索不支持https怎么办,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。最近手机端开启了https,为了绿锁需要解决如下问题:1、图片2、js3、css样式4、form
2023-06-08

css3能不能支持为网页添加多个背景图片

小编给大家分享一下css3能不能支持为网页添加多个背景图片,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!css3支持为网页添加多个背景图片。在css中,可以通过直
2023-06-14

springboot怎么为web层添加统一请求前缀

这篇文章主要介绍“springboot怎么为web层添加统一请求前缀”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“springboot怎么为web层添加统一请求前缀”文章能帮助大家解决问题。如何为w
2023-06-29

为wdcp面板的lnmp服务器添加ipv6支持的方法是怎样的

这篇文章给大家介绍为wdcp面板的lnmp服务器添加ipv6支持的方法是怎样的,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一、为nginx添加ipv6模块   在SSH窗口中执行   /www/wdlinux/ngi
2023-06-14

node.js怎么支持多用户web终端

这篇文章主要介绍“node.js怎么支持多用户web终端”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“node.js怎么支持多用户web终端”文章能帮助大家解决问题。terminal(命令行)作为本
2023-06-17

为wdcp面板的lnmp服务器添加ipv6支持的方法介绍

一、为nginx添加ipv6模块   在SSH窗口中执行   /www/wdlinux/nginx/sbin/nginx -V   返回含有如下字符   configure arguments: --user=www --group=www
2022-06-04

Web页面怎么添加水印

这篇文章主要介绍了Web页面怎么添加水印,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1、 代码开发版实现方法常规代码实现思路是:1)web 页面加载后,通过 javascr
2023-06-03

Ubuntu怎么为Apache安装SSL支持

这篇文章主要介绍“Ubuntu怎么为Apache安装SSL支持”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Ubuntu怎么为Apache安装SSL支持”文章能帮助大家解决问题。安全套接字层或称SS
2023-07-04

Win8系统不支持添加POP协议有什么方法可以让其支持POP协议呢

Win8系统的邮箱是不支持添加使用POP协议的,POP协议又叫邮局协议js,用于电子邮件的接收。如果你的电子邮件帐户使用 POP 而你希望在你的电脑上访问该帐户,那么我们该如何进行操作呢?而Win8系统邮箱的POP协议又该如何使用?下面为大
2023-06-06

怎么在Springboot中添加支付接口

本篇文章为大家展示了怎么在Springboot中添加支付接口,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1. 支付宝支付接口(沙箱实现)1.1 支付宝沙箱账号获取如下图:此处可以自行设置账户金额1
2023-06-14

node.js怎么实现支持多用户web终端

这篇文章主要介绍“node.js怎么实现支持多用户web终端”,在日常操作中,相信很多人在node.js怎么实现支持多用户web终端问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”node.js怎么实现支持多用
2023-07-04

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录