歌曲封面 未知作品

本站已加入Not By AI项目

使用HTTPS加密

本站已加入博客录 随机博客

粤公网安备44040402000217号

粤ICP备2023130441号

萌ICP备20241924号

网站已运行 1 年 308 天 2 小时 34 分

Powered by Typecho & Sunny

5 online · 521 ms

Title

一站式给自己的网站配置 SSL 证书(HTTPS)

Emotion

·

·

47次阅读
Article
⚠️ 本文最后更新于2024年03月04日,已经过了239天没有更新,若内容或图片失效,请留言反馈

HTTP 协议是 Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(www)服务器传输超文本到本地浏览器的传送协议,其基于 TCP/IP 通信协议来传递数据。
HTTPS 协议是 HyperText Transfer Protocol Secure(超文本传输安全协议)的缩写,是一种通过计算机网络进行安全通信的传输协议。HTTPS 仍然经由 HTTP 进行通信,但利用 SSL/TLS 来加密数据包
HTTP 的 URL 是由 http:// 起始,默认使用端口 80 ;
而 HTTPS 的 URL 则是由 https:// 起始,默认使用端口443 。

详细步骤
现在,让我们开始。

购买 SSL 证书
首先,你需要一张SSL证书,国内的云服务商都会提供一定数量的免费证书,例如 华为云) ,腾讯云) 等等。也可以使用 JoySSL 等第三方的免费证书。申请时填写个人信息跟着流程走即可(如果是第三方获取,还要在域名服务商处添加解析验证),理论上证明你是域名的所有者后就可以把解析删除。

下载证书
验证通过后就可以下载你的证书了,根据你的web服务器的类型下载对应的证书(有些已经全部打包在压缩包里)你可能会得到

.crt ,.pem , .key (公钥) , .rsa.key(私钥)

四个文件。

安装 SSL 证书
此处提供几个文档供参考:帮助文档
不建议在网上找各种各样的教程,都是抄来抄去且失去时效性的东西了,因此还走了很多弯路。例如新版本nginx已经把
listen 80
改成了
listen 80 ssl
网上绝大多数教程仍然是前者。最好还是去查看下官方文档,如果有疑惑也可以留言,可以讨论交流一下。由于我使用的是nginx,这里展开说说,给出两种方法。

1.1 使用宝塔进行部署
宝塔是个优秀且直观的运维管理面板,宝塔官网 。宝塔上可以直接修改。(也是使用nginx)
由于我使用了docker,还涉及到端口转发,所以没有采用这个方法,选择了更繁琐的修改配置。但是大家可以参考此文操作。

使用宝塔配置HTTPS/SSL证书

2.1 修改配置
在这里,我仍然使用了宝塔安装nginx,一开始使用docker部署遇到了很多问题,最后在宝塔自带的版本成功,也就懒得搞回docker里面了。

首先,现在宝塔的软件商店安装nginx,等待完成。
首先把你的证书文件全部上传到
/www/server/nginx/cert
目录下。

这种方式安装的nginx配置文件在
www/server/nginx/conf 目录下。
编辑该目录下的 nginx.conf 文件,在其底部添加一行代码:
include /www/server/nginx/conf/product/.conf;
保存。

使用include将配置文件拆分为多个文件,便于分配置管理,也避免我们在多次修改中把唯一的配置文件弄得面目全非。

然后我们就可以在 /www/server/nginx/conf/product/ 目录下创建配置文件了,后缀为 conf 即可,例如 certificate.conf 。

这里给出我的配置供以参考:
替换开头是”修改为...“的部分,其他配置根据实际情况修改。

♾️ Nginx 代码:

server {  
    listen 80;  
    server_name 修改为你的站点名;  
  
    location / {  
        proxy_pass http://修改为你要指向的web服务器地址及其端口;  
        proxy_set_header Host $host;  
        proxy_set_header X-Real-IP $remote_addr;  
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
        access_log /www/server/nginx/conf/product/修改为日志文件的名称,也可以更换为其他你希望的路径.log;
    }  

#分割线以上表示nginx监听80端口并将请求转发至服务器的特定端口
#—————————————————————————————————————————
#分割线以下为SSL配置

listen 443 ssl; #设置为 on 启用 SSL 功能。

#root html;

#index index.html index.htm;

ssl_certificate /www/server/nginx/cert/修改为你的证书文件名.crt; 

ssl_certificate_key /www/server/nginx/cert/修改为你证书的密钥文件名.key;   #将domain name.key 替换成您证书的密钥文件名。

ssl_session_timeout 5m;

#ssl_ciphers

#ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; #使用此加密套件。

#ssl_protocols TLSv1 TLSv1.1 TLSv1.2;   #使用该协议进行配置。

ssl_prefer_server_ciphers on;



root html;   #站点目录。

index index.html index.htm;   #添加属性。
    
}

2.2 验证配置是否正确
进入Nginx执行目录下,执行以下命令:
sbin/nginx -t
当回显信息如下所示时,则表示配置正确:
nginx.conf syntax is ok
nginx.conf test is successful

2.3 重启Nginx
执行以下命令,最后在宝塔界面重启nginx服务,使配置生效。

systemctl restart ngin

再说两个遇到的坑是 在 Nginx 的配置中,每个 location 块应该是唯一的,不应该有重复的定义,确保在同一个 server 块中不重复定义相同的 location ,遇到此类错误可以合并。在配置文件中,每个 server 块也应该具有唯一的 server_name ,并监听不同的端口。遇到该问题,同样的可以将两个功能整合到一个 server 块中。

现在已有 0 条评论,0 人点赞
Author:Emotion
作者
一站式给自己的网站配置 SSL 证书(HTTPS)
当前文章累计共 3046 字,阅读大概需要 3 分钟。
选择RSA证书的长度
2023年11月22日 · 0评论
使用Waline作为评论系统
2024年2月29日 · 0评论
日晕
2024年4月16日 · 0评论
Comment:共0条
发表
搜 索 消 息 足 迹
你还不曾留言过..
你还不曾留下足迹..
博主 不再显示
博主