使用Nginx进行ssl认证

使用Nginx进行ssl认证

chuxiwen 815,972 2022-06-18

Nginx进行https认证

现在网站都需要https认证,我使用docker部署的cloudreve,
映射的其他端口,使用nginx反向代理到80,443端口,
我们需要使用ssl签证,下面使用nginx进行https

准备ssl签证

阿里云官方教学

官方文档很详细,在完成教程后下载nginx压缩包

将解压的安装包上传到Linux服务器上

SSL_1

创建/etc/nginx/ssl文件,并将上面两个文件上传到至/etc/nginx/ssl文件中

SSL_2

准备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

SSL_3


# Nginx 学习