472 字
2 分钟
Nginx 配置SSL证书
申请SSL证书
关于 SSL证书 的申请需要从域名注册商那边进行申请,个人的都是免费的,并且基本都是几分就能申请下来,这里不多赘述。
配置Nginx服务器
申请完成并下载证书,根据建站时使用的服务器进行下载,像我使用的就是 nginx,那么我的证书就包含了 **.crt
和 **.key
两个文件。
通过指令 whereis nginx,找到 Nginx 的相关文件,会有多个搜索结果,只需要那个文件夹中包含 nginx.conf
文件即可:
编辑 nginx 的配置文件:
vim /etc/nginx/sites-available/default
server { ... listen 443 ssl default_server; listen [::]:443 default_server;
ssl_certificate xxx.crt;#替换成您的证书文件的路径 ssl_certificate_key xxx.key;#替换成您的私钥文件的路径 ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; ...}
在 server{ }
中增加如上代码就行,个人推荐证书和私钥的路径使用绝对路径。
测试服务器
通过指令 nginx -t,测试配置是否通过。
通过指令 nginx -s reload,重启 nginx 服务。
http 重定向至 https
通过如上配置方法,得到的结果是用户能同时通过 http 和 https 进行访问。
可以注释掉关于80端口的监听,就只能通过 https 进行访问。
也可以将 http 强制定向到 https,方法如下:
server { # 注释掉关于80端口的监听 #listen 80 default_server; #listen [::]:80 default_server;
# 保留对443端口的监听 listen 443 ssl default_server; listen [::]:443 default_server;
ssl_certificate xxx.crt;#替换成你的证书文件的路径 ssl_certificate_key xxx.key;#替换成你的私钥文件的路径 ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on;
# 剩下的无需修改 ...}# 增加虚拟主机配置# Force in httpsserver { listen 80; listen [::]:80
server_name 你的域名; rewrite ^(.*)$ https://$host$1 redirect;#地址临时重定向到https # permanent(永久) redirect(临时)}
Nginx 配置SSL证书
https://fuwari.vercel.app/posts/建站/nginx/nginx-配置ssl证书/