宝塔面板开启HTTPS并自定义证书
本文最后更新于 517 天前,其中的信息可能已经有所发展或是发生改变。

HTTPS可以对网页传输的数据进行加密,并提供可靠的验证方法,保证了传输机密数据(如密码,身份证号码等)的安全性,同时防止第三方劫持和插入广告。可是道高一尺魔高一丈,部分不良ISP已经开发出了“HTTPS降级劫持”这种操作,可以把用户的https请求降级为http页面,对于部分强制https的网站,甚至还有反代出http的界面这种丧心病狂的操作。因此HTST(HTTP Strict Transport Security)应运而生,HSTS是一个http响应头,告诉浏览器我的网站必须要使用https,但是如何把HSTS传递给用户呢?一般来说有两种方案

1.网页自带https响应头,这样成功加载一次hsts响应头后就不会被劫持。但是这种方案也有可能被http劫持
2.使用HSTS-Preload方案,浏览器本身自带使用hsts的域名,强制使用https,可以说是目前最安全的方案了。不过HSTS-preload加入很慢,而且要求高。
我们可以看https://hstspreload.org/的要求:

  1. Serve a valid certificate.
  2. Redirect from HTTP to HTTPS on the same host, if you are listening on port 80.
  3. Serve all subdomains over HTTPS.
    • In particular, you must support HTTPS for the www subdomain if a DNS record for that subdomain exists.
  4. Serve an HSTS header on the base domain for HTTPS requests:
    • The max-age must be at least 31536000 seconds (1 year).
    • The includeSubDomains directive must be specified.
    • The preload directive must be specified.
    • If you are serving an additional redirect from your HTTPS site, that redirect must still have the HSTS header (rather than the page it redirects to).

我们看其中最重要的要求:

max-age,代表接下来的时间内都必须要用https
includeSubDomains,代表子域名也必须使用https

那么问题来了,宝塔面板默认可是http的,即使开启了面板ssl也是自签证书,肯定不符合hsts要求,那么应该怎么办?其实宝塔支持自定义证书的,而且很方便开启,可以直接跳过自签证书。

1.在宝塔设置页面中,点击面板SSL,注意点击文字,不是开关

图1 面板SSL

2.输入自定义证书,可以根据域名自行申请,或者直接使用域名的野卡证书。

图2 宝塔自定义面板证书

3.开启面板SSL(这次是点击开关)

通过上述步骤操作后,宝塔面板便只能通过https访问了。而且直接是可信证书,跳过了宝塔自签的证书。

CentOS6用于好像无法使用面板SSL,貌似是pip版本过低,导致pip无法安装openssl。建议使用CentOS7系统。

来自

评论

  1. 123
    Windows Chrome 78.0.3904.108
    已编辑
    3 年前
    2021-10-21 22:35:47

    如果有多个域名怎么通过面板设置-面板SSL设置https?

    来自广东
    • 博主
      123
      Windows Edge 94.0.992.50
      3 年前
      2021-10-21 23:17:26

      签一个包含多域名的证书。

      来自河北
      • 123
        留连暗香
        Windows Chrome 78.0.3904.108
        3 年前
        2021-10-22 10:03:26

        此处只能填写一个证书是吗?

        来自广东
        • 博主
          123
          Windows Edge 95.0.1020.30
          3 年前
          2021-10-22 18:59:49

          对的。

          来自河北
  2. hu
    Windows Chrome 90.0.4430.212
    3 年前
    2021-5-12 10:13:10

    什么是key,什么是pem?
    我用openssl生成的只有pem文件和csr文件

    来自上海
    • 博主
      hu
      Windows Edge 92.0.878.0
      3 年前
      2021-5-12 14:01:54

      建议去申请一个腾讯云的免费证书。openssl的自签证书和宝塔自己生成的也差不多,浏览器不信任。
      腾讯云生成的证书里面,用nginx文件夹下面的就行

      来自上海
本文评论已关闭
上一篇
下一篇