展开

文章目录

修改历史

修改历史记录

  1. 2021-03-22 12:46:52
  2. 2021-03-22 12:44:57
  3. 2021-02-07 14:25:41
  4. 2021-02-07 14:24:27

给ngxin服务器添加HTTPS

2021-02-07 14:23:49 应用部署 814

简介

之前在v2ex发帖,很多大佬都diss我没有把这个网站上HTTPS,个人觉得一个私人的博客网站没有什么必要去上HTTPS,所以就一直没有弄,看了那么多大佬diss,最后还是把这个博客网站上了HTTPS了,因此记录一下整个过程。

1.获取免费的SSL证书

在部署HTTPS之前,我们需要先获取SSL证书,我购买的是鹅肠的云服务器,可以申请免费证书,点击这个链接进行申请鹅肠SSL证书申请,按照界面的上的操作步骤进行操作就可以了,审核通过之后,下载证书即可,下载的压缩文件中包含的文件如下图所示,具体看你使用的哪款服务器进行部署的,自行选择,我这里选择的ngxin服务器。

ssl证书

2.拷贝SSL证书

下载好证书之后解压出来,将证书文件拷贝到服务器中的目标文件夹中。我这里使用ngxin作为示例,一般存放在

  1. /etc/nginx/cert/ssl_name.crt
  2. /etc/nginx/cert/ssl_name.key

其中cert目录是不存在的而且命名可以随意命名,但是建议使用望文生义的名称,这两个路径十分重要,后续的配置中需要用到。

3.配置nginx

打开ngxin的配置文件

sudo vim /etc/nginx/sites-avaliable/default

在你需要的Server块中修改为下面内容

server{
    # listen 80 default_server;
    # listen [::]:80 default_server;

    # SSL configuration
    #
    # listen 443 ssl default_server;
    # listen [::]:443 ssl default_server;

    listen 443;
    ssl on;
    ssl_certificate /etc/nginx/cert/1_2dogz.cn_bundle.crt;
    ssl_certificate_key /etc/nginx/cert/2_2dogz.cn.key;
    ssl_session_timeout 5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; 
    ssl_prefer_server_ciphers on;
}

上面的内容为配置HTTPS,server块中的其他内容不能删除掉!

4.配置重定向

因为原来采用的http的方式访问,经过上述配置之后采用http方式访问就会失效,因此我们需要将http访问方式重定向到https上面来,同样在上一小节的配置文件中加入如下内容

server {
    listen 80;
    server_name 2dogz.cn;

    rewrite ^(.*)$  https://$host$1 permanent;
}

其中server_name是你自己网站的域名。

这样我们的网站就可以通过https的方式访问啦,如下图,在浏览器的地址栏会显示一个锁的图标,点击即可以看到相关信息

https访问

5.配置HTTP2

配置HTTP2协议其实非常的简单,只需要在配置文件监听端口部分加入下面的配置即可

server{
    # listen 80 default_server;
    # listen [::]:80 default_server;

    # SSL configuration
    #
    # listen 443 ssl default_server;
    # listen [::]:443 ssl default_server;

    listen 443 ssl http2;
    ssl on;
    ssl_certificate /etc/nginx/cert/1_2dogz.cn_bundle.crt;
    ssl_certificate_key /etc/nginx/cert/2_2dogz.cn.key;
    ssl_session_timeout 5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; 
    ssl_prefer_server_ciphers on;
}

 

4条评论


agys 用户

博主是前后端分离的么?

Macv 博主 回复:agys

目前不是,这种个人博客个人感觉没必要做成那种前后端分离。不过最近在学习vue.js打算把后台管理页面改成前后端分离的方式

agys 用户 回复:Macv

很厉害

Macv 博主 回复:agys

哈哈哈 谢谢啦


Macv 博主

支持emoji表情了??