资讯专栏INFORMATION COLUMN

10分钟免费开启全站HTTPS

littlelightss / 1346人阅读

摘要:主域名签发的通配符证书可以在所有子域名中使用,比如。以前配置子域名也是需要每个域名多带带的申请证书的,意思是现在可以直接用这个证书,让全站实现。下面本文就简单的记录了我开启全站的步骤,分钟就能搞定,首先从子域名开始。

持续了1个多月的备案,今天收到短信终于下来了。

上篇水文,大概的记录了作为前端利用gitlab.com利用gitlab-ci开启CI自动部署。前端的gitlab的ci初尝试。这篇文章就要开始记录下我如何开启https。

https是什么?

https 是什么,不是本文的重点,直接跳过,https 的好处在这里也不仔细讲。

什么是 Let’s Encrypt?

部署 https 网站的时候需要证书,证书由 CA 机构签发,大部分传统 CA 机构签发证书是需要收费的,这不利于推动 https 协议的使用。Let’s Encrypt 也是一个 CA 机构,但这个 CA 机构是免费的!!!也就是说签发证书不需要任何费用。

什么是全站https,也就是通配符证书?

域名通配符证书类似 DNS 解析的泛域名概念,通配符证书就是证书中可以包含一个通配符。主域名签发的通配符证书可以在所有子域名中使用,比如 .example.com、bbs.example.com、bbs.example.com。
2018 年 3 月 14 日,Let’s Encrypt 对外宣布 ACME v2 已正式支持通配符证书。这就意外味着用户可以在 Let’s Encrypt 上免费申请支持通配符的 SSL 证书。以前配置子域名也是需要每个域名多带带的申请证书的,意思是现在可以直接用*.example.com这个证书,让全站实现https。

下面本文就简单的记录了我开启全站https的步骤,10分钟就能搞定,首先从blog子域名开始。

准备工作
1. 一个顶级域名:peiqixin.com  # 我这里用的是
2. 一台自己的云服务器 # 我这里用的是我的那个小水管,之前在腾讯云撸的羊毛,6年360块钱的服务器,我这里服务器的系统用的是ubuntu

下面的所有操作都是在你的服务器上面,(我的服务器系统是ubuntu 16.04),其他的系统的操作也差不多。

添加一个blog域名解析

下载Nginx

安装 nginx 。如果你已经安装可以跳过这步。

sudo apt-get update
sudo apt-get install nginx

如果不会nginx的基本操作和基本配置,建议还是先去了解一下 nginx 的基本配置,比如如何的开启一个web服务器,nginx的基本操作和编写配置(不是必须)。

下载certbot客户端
sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt-get install python-certbot-nginx

安装的时候一路 enter 就完事儿了。

获取 Let’s Encrypt certificate

cerbot 提供 nginx 配置以帮助我们重新配置我们以前的 nginx 配置,以便我们可以使用我们即将获得的 SSL 证书。

## 我的域名是peiqixin.com。这里要换成你要配置的域名
sudo certbot --server https://acme-v02.api.letsencrypt.org/directory --manual --preferred-challenges dns  --installer nginx -d *.peiqixin.com -d peiqixin.com

然后又是一路的确定选择确定就可以了。

但是请注意这一步,就暂时不要继续enter了

请把这段token复制下来。
打开你的域名提供商,就是你之前买域名的地方。添加一个域名解析。

记录选择 选择 TXT
主机记录填入 _acme-challenge
记录值就填入刚才你保存下来的token

点击保存之后,certbot客户端会去确定你是否在正确的添加了解析。

如果正确的添加了解析。
接下来

Which server blocks would you like to modify?
-------------------------------------------------------------------------------
1: File: /etc/nginx/sites-enabled/default
Addresses: [::]:80 default_server, 80 default_server
Names: _
HTTPS: No

...
-------------------------------------------------------------------------------
Select the appropriate numbers separated by commas and/or spaces, or leave input
blank to select all options shown (Enter "c" to cancel): 

将呈现nginx配置中的服务器块列表,供您选择要将证书部署到的服务器块。
反正我用不上,这里选择cancel,输入c,enter继续。

接下来

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
-------------------------------------------------------------------------------
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you"re confident your site works on HTTPS. You can undo this
change by editing your web server"s configuration.

这一步就是让你选择是否将http流量重定向到建议的https。既然是全站https,所有的访问都应该走https,选择2,enter。提供与前一阶段相同的列表,输入c,按enter继续。

接下来,当你看到下面的一段就表明你已经配置好了。

请把

/etc/letsencrypt/live/peiqixin.com/fullchain.pem
/etc/letsencrypt/live/peiqixin.com/privkey.pem

这2个地址记下来

配置nginx
sudo nginx -t 

找到你的nginx配置文件的地址

sudo mkdir conf.d #创建一个配置nginx的目录,不可能把所有的配置写在一个文件里面,以后也不好维护

再在nginx的默认配置文件nginx.conf的http模块里面添加

include /etc/nginx/conf.d/*.conf;  #引入所有的配置文件

在conf.d文件夹里面创建一个index.conf,创建主配置文件负责监听80端口并转发请求。

server {
    listen 80;
    server_name peiqixin.com www.peiqixin.com blog.peiqixin.com;
    rewrite ^(.*) https://$host permanent;
}

创建https配置文件。创建各域名配置文件监听443端口(可以按域名分开,也可以写一个文件里,我为了方便写在一个文件里)

 server {
        listen       443;
        server_name  peiqixin.com  www.peiqixin.com;

        ssl on;
        ssl_certificate      /etc/letsencrypt/live/peiqixin.com/fullchain.pem; ## 这个就是你配置certbot最后一步要你记录下来的地址
        ssl_certificate_key  /etc/letsencrypt/live/peiqixin.com/privkey.pem;
        
        ssl_session_cache    shared:SSL:10m;
        ssl_session_timeout  5m;

        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;

        location / {
            root /home/ubuntu/blog;  ##这里我用hexo博客生成器生成的静态html,js,css都放在了这个文件
            index index.html index.htm;
        }
    }
 server {
        listen       443;
        server_name  blog.peiqixin.com;

        ssl on;
        ssl_certificate      /etc/letsencrypt/live/peiqixin.com/fullchain.pem;
        ssl_certificate_key  /etc/letsencrypt/live/peiqixin.com/privkey.pem;
        
        ssl_session_cache    shared:SSL:10m;
        ssl_session_timeout  5m;

        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;

        location / {
            root /home/ubuntu/blog;
            index index.html index.htm;
        }
    }

退出保存。检测一下nginx的配置是否有语法错误

sudo nginx -t

重启nginx

访问blog.peiqixin.com,就会看见


再访问peiqixin.com


都是自动的从http跳转到https。

接下来想要添加一个api.peiqixin.com域名为https。重复上面的第一步和最后一步,然后就可以在api.peiqixin.com域名旁边看到小绿锁。

参考资料

certbot官网

how-to-deploy-wildcard-ssl-certificates-using-lets-encrypt

Nginx 配置多域名 http转https

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/39963.html

相关文章

  • 全站HTTPS-做更安全的网站

    摘要:但是相较于非全站,全站会更加安全,也省去了和互跳转所带来的延迟。安全无价,只有保障了访客与网站的传输处在安全的协议之下,才能确保隐私和数据的安全。写在前面TrustAsia在Ucloud有提供免费证书服务,为了保障互联网安全,各位站长可以配额内申请使用(同时可以拥有多个免费证书)。如需购买付费证书或者使用免费证书请看文末~随着个人博客、主页的站点数不断增加,越来越多的风险也逐渐显露出来。许多...

    Tecode 评论0 收藏0
  • Swoft| Swoft官网全站 HTTP2 实践

    摘要:官网全站实践正式来袭也迎来自己的一个里程碑数正式突破官网作为项目组服务开发者们的重要渠道也迎来了自己的一次重大更新重构升级到全站实现本篇先介绍官网全站实践先来一张官网效果图镇楼静态资源由托管开启业务代码交由执行设置使用协议要实现非常简单 date: 2018-3-8 13:50:03title: Swoft| Swoft官网全站 HTTP2 实践 Swoft1.0正式来袭, Swoft...

    stdying 评论0 收藏0
  • Ubuntu下Nginx免费开启HTTPS访问

    摘要:最近很多的网站淘宝百度知乎等都开启了全站访问,的好处就不多说了,大家可以自己一下。一般情况下,证书是需要购买的,但是也有免费提供的,比如沃通就提供免费的证书。重启之后,网站成功开启访问。四优化开启访问之后,有时候我们希望访问的链接都跳转到。 最近很多的网站(淘宝、百度、知乎等)都开启了全站HTTPS访问,HTTPS的好处就不多说了,大家可以自己Google一下。为了赶潮流,我也想为自己...

    MobService 评论0 收藏0
  • Oracle APEX 系列文章11:全站启用 HTTPS,让你的 APEX 更安全

    摘要:引言目前主流的网站都要求安全访问,浏览器微信内置浏览器打开非的网页,都会提示不安全。按照提示补全信息。钢哥提示特别要注意的是,这里要选择格式证书进行安装,否则会有问题。本文如有遗漏或不足的地方也请随时跟钢哥交流,让我们共同学习,共同进步 showImg(https://segmentfault.com/img/remote/1460000015366037?w=1600&h=1012)...

    Vicky 评论0 收藏0

发表评论

0条评论

littlelightss

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<