由于之前一直忙于服创比赛,然后就导致好久没写博客了。 现在服创结束也有十来天了,感觉不写点什么就对不起自己了。
于是乎,就写写将网站从http升级到https的过程吧。

首先域名和服务器自然是必须的,大致流程分为以下几部:

  • 申请https证书
  • 上传文件至服务器
  • 配置https

申请https证书

https证书通常是收费的, 不过也有免费版的可以使用。我使用的是在腾讯云上申请的免费版,下面就以腾讯云的为例讲解吧。

首先进入腾讯云中云产品列表,选择SSL证书管理 ,进入登录后大概是这个样子

然后是选择 申请免费证书,然后选择 ‘免费版DVSSL证书’ 那一个,随后填写域名信息和邮箱,其余的随意了。需要注意的是,这里申请的免费证书不能用于子域名,如果子域名要用的话,还需要另外申请。 然后下一步,按提示添加域名的解析记录(推荐使用这种方法进行域名认证),认证成功之后便立刻会审核成功,然后就可以下载证书文件了。

上传文件至服务器

证书文件下载后,大概是这个样子

包含了比较主流的容器的证书文件。我们点击Tomcat进入后,有这两个文件

第一个即 Java KeyStore (JKS),即证书文件;

第二个即密码;

然后我们将第一个文件复制到服务器,我使用的是scp命令(Windows中PowerShell好像有这个命令):

scp C:\Users\Asche\home.asche.top.jks root@home.asche.top:/root

其中左边的参数是本地中文件的位置,右边是 用户@域名:目录 随后按提示继续以及输入密码即可。

第二个文件就不用传了,毕竟就一个密码,特别短。

Tomcat配置https

ssh登录服务器,进入Tomcat的根目录后,首先将证书文件拷贝至conf目录下,然后编辑conf目录下的server.xml文件,在Connector同级标签下,添加以下代码:

    <Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
keystoreFile="conf/******.jks"
keystorePass="******"
clientAuth="false" sslProtocol="TLS" />

其中443代表https监听的端口。并且记得将上面的***替换为你的具体信息,上面那个为证书文件,下面那个即之前没有上传的那个文件内的密码,直接复制粘贴上来就行了。

然后重启Tomcat之后,浏览器里就可以以Https://域名 的方式访问你的网站了。

如果还想让网站都以https的方式访问的话,还需要进一步设置。

首先还是修改conf下的的server.xml文件,将默认的8080端口改为80端口后,再将其中的重定向端口改为443,改完之后大概是这个样子

    <Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="443" />

到这里还没有结束,还需要修改conf目录下的web.xml文件,来到文件的末尾,在web-app标签结束前添加以下代码:

    <security-constraint>
<web-resource-collection>
<web-resource-name>Protected Context</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<!-- auth-constraint goes here if you requre authentication -->
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>

即一些安全相关的配置。添加保存后,重启Tomcat,再以http的方式访问的你的网站,它就会自动重定向443端口,即以https的方式访问了。

好了,教程结束!

网站Http升级至Https(基于Tomcat)的更多相关文章

  1. Https系列之二:https的SSL证书在服务器端的部署,基于tomcat,spring boot

    Https系列会在下面几篇文章中分别作介绍: 一:https的简单介绍及SSL证书的生成二:https的SSL证书在服务器端的部署,基于tomcat,spring boot三:让服务器同时支持http ...

  2. IIS同时实现网站部分使用https协议访问另一部分http访问

    一:什么是https SSL(Security Socket Layer)全称是加密套接字协议层,它位于HTTP协议层和TCP协议层之间,用于建立用户与服务器之间的加密通信,确保所传递信息的安全性,同 ...

  3. 基于tomcat+spring+mysql搭建的个人博客

    基于tomcat和spring开发的个人博客, 服务器是基于tomcat, 用了spring框架, web.xml的配置简单明了,我们只要配置MYSQL和用户过滤器等, 服务器的jsp就是负责VIEW ...

  4. https,https的本地测试环境搭建,asp.net结合https的代码实现,http网站转换成https网站之后遇到的问题

    一:什么是https SSL(Security   Socket   Layer)全称是加密套接字协议层,它位于HTTP协议层和TCP协议层之间,用于建立用户与服务器之间的加密通信,确保所传递信息的安 ...

  5. 【转】https,https的本地测试环境搭建,asp.net结合https的代码实现,http网站转换成https网站之后遇到的问题

    正需要这个,写的很好,就转过来了 转自: http://www.cnblogs.com/naniannayue/ 一:什么是https SSL(Security   Socket   Layer)全称 ...

  6. 我是如何将网站全站启用Https的?-记录博客安装配置SSL证书全过程

    评论»   文章目录 为什么要Https 如何选择Https 安装部署SSL证书 平滑过渡Https 搜索引擎的响应 启用Https小结 正如大家所看到的,部落全站已经启用了Https访问了,连续几天 ...

  7. 网站 HTTP 升级 HTTPS 完全配置手册

    网站 HTTP 升级 HTTPS 完全配置手册 今天,所有使用Google Chrome稳定版的用户迎来了v68正式版首个版本的发布,详细版本号为v68.0.3440.75,上一个正式版v67.0.3 ...

  8. http网站转换成https网站

    https,https的本地测试环境搭建,asp.net结合https的代码实现,http网站转换成https网站之后遇到的问题   一:什么是https SSL(Security   Socket  ...

  9. 基于tomcat插件的maven多模块工程热部署(附插件源码)

    内容属原创,转载请注明出处 写在前面的话 最近一直比较纠结,归根结底在于工程的模块化拆分.以前也干过这事,但是一直对以前的结果不满意,这会重操旧业,希望搞出个自己满意的结果. 之前有什么不满意的呢? ...

随机推荐

  1. 模仿w3c school的示例导航栏

    近日学习HTML,恰巧学习过程中看见w3cschool的示例导航栏看上去很不错,适合新手练习,于是模仿着做了一个. 示例导航栏如下图所示 导航栏自然使用li标签来做,a标签控制背景颜色和鼠标放入的特效 ...

  2. C# Log4.Net日志组件的应用系列(一)

    引言 Log4Net应该可以说是.NET中最流行的开源日志组件了.在各种项目框架中可以说是必不可少的组成部分.个人认为Log4Net有下面几个优点: 1. 使用灵活,它可以将日志分不同的等级,以不同的 ...

  3. easyui引入

    <% String path = request.getContextPath()+"/"; out.println("<link href='"+ ...

  4. [HNOI2004]宠物收养所

    题目链接:戳我 其实也就是一个splay而已了. 但是一定要注意这种需要计算的,刚开始insert的时候插入极大值极小值的时候不要让它爆掉int.......(比如我刚开始就写了一个214748364 ...

  5. read_csv 函数

    转载自 https://www.cnblogs.com/datablog/p/6127000.html pandas.read_csv参数整理 读取CSV(逗号分割)文件到DataFrame也支持文件 ...

  6. OCP最新题库052考题解析及答案-第37题

    37.USER1 grants SELECT, INSERT, and UPDATE privileges on USER1. EMP to USER2. SYS executes this comm ...

  7. file.delete()的优化

    //删除暂存的pdf File file =new File(pdfFilename); file.delete(); Path path2 = Paths.get(pdfFilename); Fil ...

  8. [ActionScript 3.0] 简单倒计时

    import flash.utils.Timer; import flash.events.TimerEvent; import flash.text.TextField; var text:Text ...

  9. c++ Initialization

    c++ 的初始化过程比较复杂:根据对象的storage duration来分类.所谓storage duration是对象而言的,Storage duration is the property of ...

  10. IDEA通过Maven WebApp archetype 创建Spring boot项目骨架

    springboot项目资源: GitHub地址:https://github.com/TisFreedom/springbootdome.git 码云地址:https://gitee.com/Tis ...