Nginx进行https认证
现在网站都需要https认证,我使用docker部署的cloudreve,
映射的其他端口,使用nginx反向代理到80,443端口,
我们需要使用ssl签证,下面使用nginx进行https
准备ssl签证
官方文档很详细,在完成教程后下载nginx压缩包
将解压的安装包上传到Linux服务器上
创建/etc/nginx/ssl文件,并将上面两个文件上传到至/etc/nginx/ssl文件中
准备nginx环境
这里不推荐使用docker部署nginx,
至于为啥,我忙忙碌碌一下午,屁没搞出来,
容器内部和宿主机交互太麻烦了,如果头铁,搞出来可以教教我
关于nginx部署参考前文:入门Nginx
nginx部署好后编写nginx.conf
vim /usr/local/nginx/conf/nginx.conf
下面为nginx.conf文件写法
非强制重定向https
server {
listen 80;
listen 443 ssl;
server_name 你的域名;
ssl_certificate /etc/nginx/ssl/ssl名称.pem;
ssl_certificate_key /etc/nginx/ssl/ssl名称.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;
client_max_body_size 1024m;
location / {
proxy_set_header HOST $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://你的域名:服务端口;
}
}
强制重定向
server {
listen 443 ssl;
server_name 你的域名;
ssl_certificate /etc/nginx/ssl/ssl名称.pem;
ssl_certificate_key /etc/nginx/ssl/ssl名称.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;
client_max_body_size 1024m;
location / {
proxy_set_header HOST $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://你的域名:服务端口;
}
}
server {
listen 80;
server_name 你的域名;
return 301 https://$host$request_uri;
}
注: 该代码写在http{}中
接下来重启nginx