网站如何支持并强制HTTPS访问?Nginx服务器
环境:Linux系统,nginxweb服务器
一、准备好所需的证书文件
各大云服务厂商都有提供SSL证书服务,申请一个免费的SSL证书并下载。解压缩后得到下图中的文件,红框内的部分代表SSL证书绑定的域名。
二、上传文件至Nginx安装目录
使用FTP工具将上图中的KEY和安全证书上传到Nginx的根目录,我的Nginx安装目录是 /etc/nginx 。如果你因为权限问题没有上传成功,那么你需要先赋予自己上传文件的权限。
sudo chmod a+rwx /etc/nginx
三、修改Nginx的配置文件
使用vim修改 /etc/nginx/nginx.conf 文件,并将如下的内容修改后添加到文件中去。
server {
#SSL 默认访问端口号为 443
listen 443 ssl;
#请填写绑定证书的域名
server_name saas-time.club;
#请填写刚上传的证书文件的相对路径或绝对路径
ssl_certificate saas-time.club_bundle.crt;
#请填写刚上传的KEY文件的相对路径或绝对路径
ssl_certificate_key saas-time.club.key;
ssl_session_timeout 5m;
#请按照以下协议配置
ssl_protocols TLSv1.2 TLSv1.3;
#请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
location / {
#如果你的网站当前已经可以通过http访问,则无需关注location模块
#本模块的目的就是设置访问路径,有很多种设置方式
#网站主页路径。此路径仅供参考,具体请您按照实际目录操作。
#例如,您的网站主页在 Nginx 服务器的 /etc/www 目录下,则请修改 root 后面的 html 为 /etc/www。
root html;
index index.html index.htm;
}
}
四、重启Nginx服务器
sudo nginx -s reload #不终止服务器的情况下重载配置,修改配置文件后建议采用此命令重载
五、补充:通过Nginx配置强制HTTPS
核心思路是nginx.con配置文件中同时监听80和443端口的请求,当接收到http请求时通过301重定向到https,见下文代码块中#######包含的内容。
server {
listen 80;
charset utf-8;
client_max_body_size 75M;
#SSL 默认访问端口号为 443
listen 443 ssl;
#请填写绑定证书的域名
server_name saas-time.club;
#请填写证书文件的相对路径或绝对路径
ssl_certificate saas-time.club_bundle.crt;
#请填写私钥文件的相对路径或绝对路径
ssl_certificate_key saas-time.club.key;
ssl_session_timeout 5m;
#请按照以下协议配置
ssl_protocols TLSv1.2 TLSv1.3;
#请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
###############
if ($scheme = http) {
return 301 https://$server_name$request_uri;
}
############
}
发布时间:2023年11月18日 12:26
分类:技术博客
标签:
nginx
Linux
https
vim
SSL证书
chomd
作者:五行缺土
微信扫码接收最新分享: