Web服务器启用HTTPS的配置方法

这篇具有很好参考价值的文章主要介绍了Web服务器启用HTTPS的配置方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本文于2016年3月完成,发布在个人博客网站上。 考虑个人博客因某种原因无法修复,于是在博客园安家,之前发布的文章逐步搬迁过来。


nginx的配置方法

可以参考Jerry Qu的本博客 Nginx 配置之完整篇。

Tomcat的配置方法

以Java语言实现的Connector为例,介绍配置方法。

创建证书

  • Windows下,可以在CMD下执行命令

      "%JAVA_HOME%\bin\keytool" -genkey -alias tomcat -keyalg RSA -keystore tomcat.key
    
  • Unix下,可以在shell下执行命令

      $JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA -keystore tomcat.key
    

keytool提示输入口令时,输入changeit;然后按照要求输入其它信息,证书信息会生成到tomcat.key文件中。

注意,这里输入的口令可以不是changeit,但具体值需要和Connector配置中的keyPasskeystorePass保持一致,否则Tomcat启动后会报错提示无法加载证书文件。

关于证书,这是一个很大的话题,涉及范围很广,而Jackie其实一直以来并没有搞的很清楚,所以此处就不献丑了。

配置Connector

对于Apache Tomcat的7.0.X版本,修改$CATALINA_BASE/conf/server.xml中定义的Connector,增加HTTPS通道的定义,样例如下:

<!-- HTTP通道,跳转至8443端口 -->
<Connector port="8080" protocol="HTTP/1.1"
    connectionTimeout="20000"
    redirectPort="8443" 
/>
<!-- HTTPS通道 -->
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
	connectionTimeout="20000"
	URIEncoding="UTF-8"
	SSLEnabled="true"
	secure="true"
	scheme="https"
	clientAuth="false"
	keystoreFile="conf/tomcat.key"
	keyPass="changeit"
	keystorePass="changeit"
>
</Connector>

对于Apache Tomcat的9.0.X版本,与7.0.x版本的配置方法稍有不同,但同样需要修改$CATALINA_BASE/conf/server.xml中定义的Connector,样例如下:

<!-- HTTP通道,跳转至8443端口 -->
<Connector port="8080" protocol="HTTP/1.1"
	connectionTimeout="20000"
    redirectPort="8443" 
/>
<!-- HTTPS通道 -->
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
	connectionTimeout="20000"
    URIEncoding="UTF-8"
    SSLEnabled="true"
    scheme="https" 
    secure="true" 
    >
    <SSLHostConfig>
        <Certificate certificateKeystoreFile="conf/tomcat.key"
        	certificateValidation="false"
        	certificateKeyPassword="changeit"
        	certificateKeystorePassword="changeit"
            type="RSA" 
        />
    </SSLHostConfig>
</Connector>

样例中配置了明文的口令,显然并不安全,存在安全上的漏洞。

解决的方法如下:

  1. 使用安全且可逆的加密算法生成密文;
  2. 修改tomcat相关的源码,使用加密算法还原得到明文,然后使用明文来加载证书。

过程并不复杂,可以参考tomcat安全配置之证书密码加密存储。

配置应用

修改应用的web.xml文件,增加如下配置

<session-config>
	<cookie-config>
		<!-- <http-only>true</http-only> --> <!-- 设置Cookie对浏览器加载的脚本不可见,默认值为true,因此无需配置 -->
		<secure>true</secure> <!-- 设置Cookie使用HTTPS方式传递 -->
	</cookie-config>
<session-config>
<security-constraint>
    <web-resource-collection>
        <web-resource-name>SSL</web-resource-name>
        <url-pattern>/*</url-pattern> <!-- 对于应用的所有URL都要求使用HTTPS方式访问 -->
    </web-resource-collection>
    <user-data-constraint>
        <transport-guarantee>CONFIDENTIAL</transport-guarantee>
    </user-data-constraint>
</security-constraint>

当然可以依据实际情况调整样例中对URL的控制范围。

官网的参考资料

  • Apache Tomcat 7 SSL/TLS Configuration HOW-TO
  • Apache Tomcat 7 The HTTP Connector
  • Apache Tomcat 9 SSL/TLS Configuration HOW-TO
  • Apache Tomcat 9 The HTTP Connector
  • The Java EE 6 Tutorial Specifying Security Constraints

关于HTTPS的阅读材料

百度的HTTPS实践

百度目前已实现全站启用HTTPS,来自百度运维部主页的如下文章记录了百度技术人员的实践经验,非常值得一读。

  • 全站 https 时代的号角 : 大型网站的 https 实践系列
  • 大型网站的 HTTPS 实践(1):HTTPS 协议和原理
  • 大型网站的 HTTPS 实践(2):HTTPS 对性能的影响
  • 大型网站的 HTTPS 实践(3):基于协议和配置的优化
  • 大型网站的 HTTPS 实践(4):协议层以外的实践

Jerry Qu的分享

Jerry Qu的博客是一个好地方,有很多前端的资料,值得拜读。文章来源地址https://www.toymoban.com/news/detail-767521.html

  • 关于启用 HTTPS 的一些经验分享(一)
  • 关于启用 HTTPS 的一些经验分享(二)
  • TLS 握手优化详解

其它资料

  • HTTPS是如何保证连接安全:每位Web开发者都应知道的,原文
  • 图解HTTPS
  • Qualys SSL Labs的SSL Server Test工具

到了这里,关于Web服务器启用HTTPS的配置方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【小沐学Web】Node.js搭建HTTPS 服务器

    HTTPS是什么?HTTPS是基于TLS/SSL的HTTP协议。 HTTPS (全称:Hypertext Transfer Protocol Secure),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性。HTTPS 在HTTP 的基础下加入SSL,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL。 HTTPS 存

    2024年02月11日
    浏览(43)
  • Linux -- 进阶 Web服务器 搭建基于 https 协议的静态网站 ( 预备知识 )

                什么是 HTTPS ?   HTTPS  协议背景 ?         ===                  HTTP 协议  即  超文本传输协议 ,                 它出生的很早,在早期,网络服务的相关攻击呢,或者病毒啥的几乎没有,安全类的问                  题也是少之又少。   

    2024年02月06日
    浏览(39)
  • 自建 Bitwarden 服务器并配置 HTTPS

    我时常因为要记住各种平台的账户密码而担忧,因为怕忘记,然后就想找一款可以保存密码的软件,市面上有 1password ,我使用过它,它确实好用,我通过 Github 学生认证包,免费尝试了一年,但是续费比较贵,所有我选择买一台服务器,自建服务器,数据在自己手里更放心。

    2024年04月25日
    浏览(25)
  • Linux -- 进阶 Web服务器 搭建基于 HTTPS 协议的静态网站 (实验实操)

                  现在我们想架设一个 互联网网站的话,我们就得想法认证自己是官方的,得产生一个证书         这个证书呢,我们使用的是 X.509  格式的证书                                该证书 包含三个文件 :  key , csr , crt 。           先介绍下 :  PKI(

    2024年02月07日
    浏览(32)
  • linux 服务器类型Apache配置https访问

    一:查看服务器类型,下载相应的SSL证书 命令:netstat -anp | grep :80 httpd 是Apache超文本传输协议(HTTP)服务器的主程序,所以下载Apache证书 二:将证书解压后复制到服务器上 三个文件:xxx.key xxx_public.cert xxx_chain.cert 三:准备工作完成,配置 1.命令: yum -y install mod_ssl   安装 m

    2024年02月21日
    浏览(36)
  • Linux服务器上配置HTTP和HTTPS代理

    本文将向你分享如何在Linux服务器上配置HTTP和HTTPS代理的方法,解决可能遇到的问题,让你的爬虫项目顺利运行,畅爬互联网! 配置HTTP代理的步骤 1. 了解HTTP代理的类型:常见的有正向代理和反向代理两种类型。根据实际需求选择不同的代理类型。 2. 安装和配置Squid代理服务

    2024年02月13日
    浏览(32)
  • 中兴R5300 G4服务器iSAC管理员zteroot密码遗失的重置方法及IPV6地址启用设置

    本文讲解中兴R5300 G4服务器BMC带外iSAC管理员zteroot密码遗失,无法登录时如何对其进行密码重置,以及iSAC启用IPV6地址的方法。 一、重置中兴R5300 G4服务器iSAC管理员zteroot密码 1、通过SSH登录到iSAC,默认用户名:sysadmin,密码:superuser,如有修改,请输入修改后的密码 2、确认主

    2024年02月03日
    浏览(52)
  • nginx一台服务器上配置两个https 域名网站

    要在 Nginx 中配置两个 HTTPS 网站,您需要执行以下步骤: 在服务器上安装 SSL 证书。您需要为每个网站安装单独的 SSL 证书。 在 Nginx 配置文件中创建两个 server 块,每个块代表一个网站。 在每个 server 块中,配置 SSL 证书和密钥文件的路径。 配置每个 server 块的 server_name 指令

    2024年02月10日
    浏览(49)
  • Nginx 详细配置(如:vue配置history刷新不404,https配置,配置代理等等,服务器配置)

    1.安装 Nginx:首先,确保您的服务器上已经安装了 Nginx。如果没有安装,可以通过包管理器(如apt、yum等)进行安装。或者在官网安装对应版本管理,官网下载地址:https://nginx.org/en/download.html 不同的版本不同的安装方法,自行百度 2.配置 Nginx:找到 Nginx 的配置文件(通常位

    2024年02月17日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包