轻量应用服务器部署SSL证书修改全站https过程记录

自22年9月份开始筹备私人博客的搭建以来,历经半年多的摸索,我终于将博客基本搭建成型了。

但因为经验所限,开始部署选择使用的是http协议,HTTP 协议是以明文方式发送信息的,若黑客截取了 Web 浏览器和服务器之间的传输报文,就可以直接获得其中的信息,安全性难以得到保证。为了进一步提升博客的访问安全性,利用了半个月左右的时间完成了SSL证书的申请、部署,并将网站整体修改为了https协议。简单来说,HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。

1、申请SSL证书

对于个人而言,没有商业性需求完全可以申请一个免费的SSL证书,我是通过腾讯云进行申请的,申请链接如下:

https://console.cloud.tencent.com/ssl/dsc/apply

点击进入后申请界面如下,根据指引完善信息后等待证书下发即可。

2、部署SSL证书

部署SSL证书的方式有两种:

1)通过腾讯云、阿里云等后台直接部署。

点击“部署”按钮后,设置好自己对应的域名、部署类型即可一键部署。

2)自行将SSL证书下载、安装到服务器中

安装证书的大致流程为:(1)下载证书;(2)解压证书并复制到服务器对应目录下;(3)修改中间件配置文件。下面分别以Nginx和宝塔面板为例:

Nginx的证书安装:

(1)下载证书

一般说来,下载的证书应该是一个ZIP压缩包文件,解压即可得到:.crt、.pem、.csr、.key四个文件。我们需要使用的是.crt和.key这两个文件。

(2)创建目录

在Nginx的安装目录下创建cert目录,并将.crt和.key这两个文件拷贝到“cert”目录下。

此处因为每个服务器的安装目录各有差异,所以需要自己确定Nginx安装路径。一般地,对于腾讯云提供的轻量应用服务器,Ngnix的安装路径(正在使用的)为:/www/server/panel/vhost/nginx,仅供参考。

(3)修改配置文件

修改Nginx的conf文件,如果是针对所有站点进行修改则修改nginx.conf,如果是针对单个站点,直接修改域名.conf即可:

server {
     listen 443 ssl;
     server_name admin.xxxx.xxx;
     ssl_certificate ../cert/server.crt
     ssl_certificate_key ../cert/server.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;

     location / {
         root     html;
         index    index.html index.htm;
     }
}

(4)重启Nginx

因为服务器的安装路径不同,请自行寻找对应的Nginx安装路径,还是以腾讯云服务器为例,命令如下:

[root@VM-8-12-centos sbin]# cd /www/server/nginx/sbin
[root@VM-8-12-centos sbin]#./nginx -s reload

宝塔面板中的证书安装:

首先,必须吐槽下宝塔面板的巨巨巨巨巨巨坑:

nginx: [emerg] no “ssl_certificate” is defined for the “listen …

这个报错,如果不在配置证书前预先更改配置文件就会出现,所以请各位无论如何首先对配置文件做个修改:

选择左侧选项卡的“网站”选项,然后点击右侧“设置”。

在弹出的对话框中选择左侧“配置文件”,然后增加标红处代码:

#SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
#error_page 404/404.html;
#HTTP_TO_HTTPS_START

然后点击保存即可。

然后开始配置证书,进入左侧选项卡“SSL”选项,左侧将.csr文件中的文本内容粘贴进来,右侧将.crt文件中的文本内容粘贴过来,点击保存即可:

3、配置Wordpress中的链接

一定要确保,将所有的http链接都修改为https,否则你将无法访问你的站点!

4、检查是否可以通过https协议访问你的站点

直接在浏览器窗口输入:https://+你的域名,查看是否能正常访问你的站点,如果不能,请检查上述过程配置是否有误,以及防火墙是否开放了443或其他SSL服务端口。

5、设置301重定向,确保你的站点只能通过https来进行访问

在通过上述过程配置以后,你的站点应该可以同时使用http和https来进行访问,为了保证实现全站https,需要对访问做重定向,修改你的网站配置文件,在server代码块中添加下述代码:

server {
    rewrite ^(.*)$ https://$host$1 permanent;
    if ($server_port = 80) {return 301 https://$server_name$request_uri;}
        if ($scheme = http) {return 301 https://$server_name$request_uri;}
            error_page 497 https://$server_name$request_uri;
}

至此,你的站点就已经实现了全站https访问。

还是要提一嘴,不同的服务器、中间件安装路径、部署方式等都会导致配置过程有所不同,此文章仅能为各位提供些许参考,如有谬误请各位批评指正~

版权声明:除特殊说明,博客文章均由为布斯上校原创,依据CC BY-SA 4.0许可证进行授权,转载请附上出处链接及本声明。
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇