• Nginx+SpringBoot配置SSL证书,实现https访问


    从http到https需要申请ssl证书。

    阿里云有免费的ssl证书,买了一个测试。

    步骤

    我的环境为nginx+springboot。springboot中不配置ssl,只需要配置nginx即可。

    1. 首先,在服务器控制台打开443端口。默认的网站都是80端口,https默认为443端口
    2. 在域名控制台建好用来测试的二级域名,用一级域名当然也可以。
    3. 申请ssl证书,验证的时候,按照网站提示的要求,在域名那里填相应的记录就好。
    4. ssh连接到服务器,配置nginx.conf文件。
    5. 测试配置文件nginx.conf是否正确。/usr/local/nginx/sbin/nginx -t (nginx安装的目录/sbin/nginx -t)。
    6. 当填写完,测试过,没有错误信息的时候,重启nginx。/usr/local/nginx/sbin/nginx -s reload

    一些错误

    1. nginx 报错 : [warn] the "ssl" directive is deprecated, use the "listen ... ssl" directive instead

    因为nginx 1.15 及以后的版本,不需要再写 ssl on; 了。需要把ssl on 改为listen 443 ssl;

    如果还不行,那就是服务器的443端口没有打开。

    1. 配置文件中不要直接复制百度到的。出现这个错误,nginx: [emerg] unknown directive " " in /usr/local/nginx/conf/nginx.conf,是因为复制到的空格的原因。需要删除空格重新写。

    源码

    贴上我的https的部分的配置文件(每个二级域名都需要一个这种配置):

    # http -> Https 如果使用的http协议访问,重定向到https访问
    server {
        listen         80;
        server_name    xxx.xxx; # 域名
        add_header Strict-Transport-Security max-age=15768000;
        return 301 https://$server_name$request_uri;
    }
    # Https 的配置,除了有注释的地方,其他地方和我一样即可
    server {
        listen 443 ssl; # 老版本是ssl on;较新的为listen 443 ssl;
        server_name xxx.xxx; # 域名
        
        keepalive_timeout 10m;
        ssl_certificate      cert/xxx.xxx.pem; # 申请的证书,把证书和秘钥上传到nginx.conf的同级目录cert的目录下
        ssl_certificate_key  cert/xxx.xxx.key; # 秘钥
        ssl_session_timeout 24h;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
        location / {
                proxy_pass http://127.0.0.1:8080; # 反向代理到本机的8080端口,8080端口的那个服务器不需要任何关于https的配置。
                proxy_redirect off;
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto $scheme;
                proxy_set_header X-Forwarded-Port $server_port;
            }
    }
    
  • 相关阅读:
    influxdb + cadvisor + grafana 监控 docker容器应用性能
    zabbix_get命令
    【工作笔记】python+influxdb+grafana监控云行情
    沙雕与大婶 | 把5W2H融入你的架构设计吧
    GO系列 | 5分钟入门GO【译】
    Docker深入浅出系列 | 5分钟搭建你的私有镜像仓库
    Docker深入浅出系列 | Swarm多节点实战
    Docker如何给Springboot项目动态传参
    沙雕与大婶 | Mock掉你的外部依赖吧
    ed后缀读音规则
  • 原文地址:https://www.cnblogs.com/to-red/p/12450616.html
Copyright © 2020-2023  润新知