• nginx安全:配置ssl证书(https证书)


    一,配置https证书的意义

    https协议是由SSL+http协议构建的安全协议,支持加密传输和身份认证,

    安全性比http要更好,因为数据的加密传输,更能保证数据的安全性和完整性

    例如:不使用https,网站就比较容易被网络劫持,

               网络劫持会导致页面上出现一些垃圾广告,或被引导到无关的网站,

              使用https可以避免这些情况

    说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest

             对应的源码可以访问这里获取: https://github.com/liuhongdi/

    说明:作者:刘宏缔 邮箱: 371125307@qq.com

    二,查看ssl模块默认是否已编译

    [root@centos8 ~]# /usr/local/soft/nginx-1.18.0/sbin/nginx -V
    nginx version: lws/1.18.0
    built by gcc 8.3.1 20190507 (Red Hat 8.3.1-4) (GCC) 
    built with OpenSSL 1.1.1c FIPS  28 May 2019
    TLS SNI support enabled
    configure arguments: --prefix=/usr/local/soft/nginx-1.18.0 --with-http_stub_status_module --with-http_ssl_module

    编译参数中已包含了http_ssl_module这个模块

    三,https证书的获取:

    1,购买:

    可以从国内的证书代理机构购买,

    国外的证书大厂包括:

    GlobalSign

    geotrust

    DigiCert等等

    2,免费证书:

    可以从letsencrypt获取免费的证书,配置起来稍微麻烦一点,

    优点是免费

    官方网站:

    https://letsencrypt.org/

    四,nginx配置使用ssl证书

    1,配置启用ssl

    #ssl on:启用ssl

    #ssl_certificate        https证书文件

    #ssl_certificate_key  证书申请者的私钥文件

    ssl on;
    ssl_certificate /data/certs/ssl2019/ssl.crt;
    ssl_certificate_key /data/certs/ssl2019/ssl.key;

    注意:证书文件的安全非常重要,

     不要放到网站虚拟主机的root目录下,

     避免被暴露到公网上

    2,ssl的优化:

    #ssl_session_cache:配置共享会话缓存大小

    #ssl_session_timeout:配置会话超时时间

    配置例子:

    ssl_session_cache   shared:SSL:10m;
    ssl_session_timeout 10m; 

    ssl的session的作用:

    每次新的TLS连续都需要握手(因为创建共享的加密密钥),在TCP三次握手之上还需要多两个来回,

    重用一个Session,可以减少一个来回,减少cpu的计算量

    ssl_session_cache的默认值是none

    它的取值包括:

    1,off:不使用session缓存: nginx告诉客户端session可能不会被重用
    2,none:不使用session缓存:nginx告诉客户端session可能会被重用,
                           但并不会把session存储在缓存中
    3,builtin:缓存只供一个工作进程使用
    4,shared: 所有工作进程之间共享缓存

    说明:ssl 的session cache大小:1M字节可以存储大约4000个session,

              可以根据自己网站的并发情况计算一个合适的数字

    说明:建议把session的配置放到http段而不是server段,共享可以提升性能

    五,强制浏览器跳转https协议访问

    当用户访问到http网站时,直接rewrite到https站即可

    server {
            listen       80;
            server_name dev.lhdtest.com;
            rewrite ^(.*) https://$server_name$1 permanent;
        } 

    六,查看nginx版本

    [root@centos8 ~]# /usr/local/soft/nginx-1.18.0/sbin/nginx -v
    nginx version: nginx/1.18.0
  • 相关阅读:
    spring 学习-bean创建bean
    [转]spring 学习-bean创建-循环依赖-3
    [转]spring 学习-bean创建-循环依赖-2
    [转]spring 学习-bean创建-循环依赖-1
    2、python2.7,python3.9 ;在不同版本上获得整数类型运行的结果
    记一次Linux bash 命令行卡顿排查之警惕LD_PRELOAD环境变量
    CPU中断数查看与网卡中断绑核
    中华人民共和国 个人信息保护法 (全文学习)八章 七十四条 2021年11月1日起施行
    【模拟试题】旅行
    Vagrant出现的问题整理
  • 原文地址:https://www.cnblogs.com/architectforest/p/12844540.html
Copyright © 2020-2023  润新知