「Nginx」Nginx踩坑经历/反向代理 SSL证书配置
in 杂谈 with 0 comment

「Nginx」Nginx踩坑经历/反向代理 SSL证书配置

in 杂谈 with 0 comment

记一次nginx踩坑经历

前因后果是因为买了个.top的域名,开通首先需要备案审核。

审核通过了之后才能正常访问,所以当时就用IP地址写了好几篇文章。

昨天域名备案通过了之后配置了域名访问,安装了Nginx进行反向代理。

因为服务器用的是阿里云,所以申请了阿里云的免费SSL证书。

一套下来配置好了之后,虽然可以正常访问 www.kame.top 但是显示连接不安全。俺就懵了,查了下Halo社区有解决方案。

我的配置如下:

server {
    listen      443 ssl http2 default_server; #http2支持,nginx1.9+支持
    server_name www.kameee.top;

    # nginx/1.15.0 以上使用 listen 443 ssl 代替 listen 443 和 ssl on
    # 证书路径
    ssl_certificate             /etc/nginx/conf.d/cert/kameee.pem;
    # 私钥路径
    ssl_certificate_key         /etc/nginx/conf.d/cert/kameee.key;
    ssl_session_cache           shared:SSL:10m;
    ssl_session_timeout         30m;
    # 浏览器已支持TLSv1.3,建议加上
    # TLSv1和TLSv1.1即将废弃,如果不需要支持IE和XP建议去掉
    # IE8-10/Win7需要TLSv1.0;IE8以下需要SSL3和单证书
    ssl_protocols               TLSv1.1 TLSv1.2 TLSv1.3;
    # on由服务器决定加密算法,off由浏览器决定
    # 推荐使用on,更安全,对服务器性能有少量影响
    ssl_prefer_server_ciphers   on;
    # 使用此套接字加密,推荐配置
    ssl_ciphers                 ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4:!DH:!DHE;

    # HSTS(ngx_http_headers_module is required) (180d)
    # 严格传输安全:即在时间过期之前,每次访问HTTP站点时,由客户端直接跳转到HTTPS站点
    # 设置后,该网站的HTTP站点无法打开,只能等待过期或禁用配置后清空浏览器缓存
    # 启用后注意保持证书不过期,证书过期后网站可能无法访问
    add_header Strict-Transport-Security "max-age=15552000" always;

    # 开启 OCSP Stapling,作用:由服务器在线查询证书吊销情况
    # 默认是由浏览器在线查询,由服务器查询效率更高
    ssl_stapling                on;

    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://127.0.0.1:4050/;   # 更改你的halo的端口号
    }

}

server {
    listen 80;
    server_name www.kameee.top;
    rewrite ^(.*)$ https://$host$1 permanent;

    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://127.0.0.1:4050/;# 更改你的halo的端口号
    }
}

更改好了之后发现还是不安全的连接。

猛得想起之前写的文章里图片的链接还是HTTP!!

傻傻的把HTTP资源(地址为IP)更改为HTTPS资源(地址为域名www.kameee.top)后终于变成安全的连接了。

可以使用网站 https://myssl.com/ 测试自己的SSL是否符合安全标准。

nginx1.png

可以看见如上配置了之后网站安全性是A+级。

第一次在服务器上配置web服务器什么的,不太懂这方面的东西,踩了好多坑,害。