全面升级HTTPS访问

全面升级HTTPS访问

HTTPS是什么?

HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的 HTTP 通道,简单讲是 HTTP 的安全版。即 HTTP 下加入 SSL 层,HTTPS 的安全基础是 SSL ,因此加密的详细内容就需要 SSL。(节选自百度百科)

目前,一半以上的网站都已经开通了 HTTPS 加密,Chrome 和 Firefox 等现代浏览器均表示即将把 HTTP 访问的网站标记为不安全的网站。因此,我昨晚花了一个小时将手头的几个域名都开通了 HTTPS 的证书,将具体过程记录在本文中,以免忘记,因为三个月后我要给证书续期。

Let’s Encrypt X3 的证书

这是一份由 Let’s Encrypt 免费提供的证书,有效期为三个月,到期后可以免费续期。
申请方法一:免费的中文申请网站,freessl.org,我选择的是 ECC 的证书类型,验证类型为 File (DNS也可以,但是我设置了 CDN 加速,改 DNS 有点麻烦),CSR 生成为后端生成(试过一次用浏览器生成,但是用 Chrome 访问的时候失败了,后端生成都能够成功)。

Freessl.org

如图设定好后,将一个文件设置到网站的指定目录,等待120秒后认证通过,就可以下载到 SSL 的证书。我使用的是宝塔面板,可以直接在网站管理中加入证书。我一共有两个域名是通过这个方法申请到的 SSL 证书,缺点是免费证书只能是单域名的,对于多域名和泛域名并不支持。

申请方法二:可以通过这个网站申请:sslforfree,具体操作过程和方法一类似,就不多说了。唯一的区别在于方法一时中文界面,方法二是英文界面。

申请方法三:使用宝塔面板网站管理直接生成证书,据说可以自动续证书,但是我用了 CDN,可能不支持。宝塔的界面如下:
bt.cn

申请方法四(失败):似乎百度云和阿里云等云服务器企业也可以申请免费的证书,但是我在做百度云的时候迟迟不通过文件验证,浪费了许多时间,于是就放弃了。

TrustAsia 亚洲诚信的证书

申请方法一:这个证书是知名杀毒软件赛门铁克家的,它也可以直接在freessl.org这个网站上申请,它提供一年免费的 DV SSL 证书,比上面那个三个月有效期长了四倍,减少了续期的工作量。我也是用 File 文件认证和后端生成 CSR 的方式,我有两个子域名是通过这个证书升级为 HTTPS。

申请方法二(未测试):百度云、阿里云、腾讯云好像也提供这个证书的免费申请,但没有测试过。

将证书安装到阿里 CDN 和 OSS 服务

因为在申请证书的时候,我关闭了 CDN 服务,在后面重建的时候发生了一些错误,浪费了一些时间,特记录。由于晚上可能智商掉线,我一开始弄错了业务逻辑,应该是将访问域名的 DNS 解析到 CDN 的别名上,CDN 的回源域名是 OSS 提供的别名,

在阿里云的 CDN 界面中,设置回源为443端口,并且把证书复制进去,和宝塔面板一样,然后等一会就好了。

但是在访问网站的过程中,我发现还是没有全部实现 HTPPS 访问,通过浏览器的开发人员工具调试发现,我的网站一开始访问的图片还是由80端口提供,经过301跳转才到了433端口,这就使得并不完全安全。但是没有发现什么好的解决方法,好在图片数量不多,于是我只能手动把图片链接改成了 HTTPS 的头,以后看来都要注意这个问题。

后记

当晚就收到了阿里云的账单,因为 OSS 服务花了两分钱,然后就被暂停服务了,吐槽一下阿里云就不能透支一点点么?也不是很懂这两分花在了哪里,我都开通了资源包。

有趣的是,我并没有刻意选择哪个证书去申请,但是凑巧,两个用了 CDN 的子域名都申请了亚洲诚信的一年期证书,这就减少了我未来的工作量,准备三个月后,另外两个子域名也都转移到亚洲诚信下。

更有趣的是,我刚发布完这篇文章的时候就接到了百度云客服经理的回访电话,嗯,提工单解决,以后再说吧,暂时不需要了。

参考教程:
1. 秋大对 SSL 证书的介绍:https://teddysun.com/527.html
2. 宝塔面板的 SSL 安装教程:http://www.bt.cn/bbs/thread-704-1-1.html

最近更新时间:2018年03月05日

<think>好的,用户想了解如何将HTTP升级HTTPS,可能需要配置服务器或获取SSL证书的方法。首先,我需要整理一下整个流程,确保步骤清晰易懂。根据之前提供的引用内容,特别是引用[2]和引用[3],HTTPS升级主要涉及证书获取和服务器配置两个部分。 首先,SSL证书的获取。用户可能是个体开发者或小项目,所以免费证书比较合适。Let's Encrypt是常见选择,但有效期只有三个月,需要续签。国内的阿里云等提供商也有免费证书,有效期一年,适合中文用户。需要提醒用户选择证书时注意域名匹配问题,比如xx.com和www.xx.com可能需要不同的证书。 接下来是配置服务器。不同的Web服务器配置方法不同,用户可能使用Tomcat、Nginx或Apache。引用[1]提到Tomcat 9的配置方法,需要修改server.xml,这里要详细说明步骤,比如取消注释SSL连接器,指定证书路径和密码。同时,要提醒用户替换示例中的路径和密码,并检查端口是否正确。 然后是强制HTTPS的重定向设置。这可以通过配置Web服务器的重写规则实现,比如在Tomcat中配置web.xml,或者在Nginx中使用rewrite指令。另外,HSTS的配置也很重要,可以增强安全性,但需要谨慎设置max-age时间,避免因配置错误导致长时间无法访问。 最后,测试和后续维护。使用SSL检测工具检查配置是否正确,证书是否生效。同时,提醒用户注意证书的有效期,及时续签,避免服务中断。特别是使用Let's Encrypt的用户,需要设置自动续签,否则三个月后可能会出现问题。 用户可能需要分步骤的指导,尤其是具体的配置代码示例,比如Tomcat的server.xml修改部分,以及Nginx的配置示例。同时,常见问题如混合内容问题和HSTS配置注意事项也需要提及,帮助用户避免常见陷阱。 此外,用户的问题中提到了Tomcat 9的配置变化,旧教程可能过时,所以需要强调最新方法,避免用户走弯路。例如,在Tomcat中需要取消注释正确的Connector,并确保使用正确的协议和密钥库路径。 最后,生成相关问题需要考虑用户可能的后续疑问,比如证书续期方法、不同服务器的配置差异、HTTPS对SEO的影响等,这些都能帮助用户更全面地理解和实施HTTPS升级。</think>### HTTP升级HTTPS配置指南 #### 一、SSL证书获取(以阿里云为例) 1. **申请免费证书**:登录阿里云控制台 -> SSL证书 -> 购买免费证书(DV单域名) -> 填写域名信息 -> 等待审核(约30分钟)[^2] 2. **下载证书**:审核通过后下载对应服务器类型的证书文件(含`.pem`和`.key`) #### 二、Tomcat 9配置示例 1. **解压证书文件**到`/etc/tomcat/ssl/`目录 2. **修改`server.xml`** ```xml <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true"> <SSLHostConfig> <Certificate certificateKeystoreFile="/etc/tomcat/ssl/your_domain.pfx" certificateKeystorePassword="your_password" type="PKCS12" /> </SSLHostConfig> </Connector> ``` 3. **强制HTTP跳转HTTPS**:在`web.xml`添加 ```xml <security-constraint> <web-resource-collection> <url-pattern>/*</url-pattern> </web-resource-collection> <user-data-constraint> <transport-guarantee>CONFIDENTIAL</transport-guarantee> </user-data-constraint> </security-constraint> ``` #### 三、Nginx配置示例 ```nginx server { listen 443 ssl; server_name yourdomain.com; ssl_certificate /etc/nginx/ssl/yourdomain.pem; ssl_certificate_key /etc/nginx/ssl/yourdomain.key; # 强制重定向 if ($scheme = http) { return 301 https://$server_name$request_uri; } } ``` #### 四、验证与优化 1. 访问`https://www.ssllabs.com/ssltest/`检测安全评级[^2] 2. 启用HSTS增强安全(添加响应头) ```nginx add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; ``` #### 五、注意事项 1. 混合内容问题:确保页面所有资源(图片/JS/CSS)使用HTTPS链接 2. 证书续期:免费证书需定期更新(阿里云1年,Let's Encrypt 3个月) 3. 多服务器配置差异:Apache需配置`mod_ssl`模块[^3]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值