zoukankan      html  css  js  c++  java
  • nginx 09-Nginx部署https

    部署https背景

    • http不安全
    • 传输数据被中间人盗用、信息泄露
    • 数据内容劫持、篡改

    https协议的实现

    • 对传输内容进行加密以及身份验证

    对称加密

    非对称加密

    (相对复杂,对性能有一定损耗 )

    https加密协议原理

    (先非对称加密,后进行对称加密传输数据)

    生成密钥和CA证书

    openssl version
    nginx -V
    (包含模块:--with-http_ssl_module)
    

    1、生成key密钥

    openssl genrsa -idea -out /etc/nginx/ssl_key/test.key 1024
    设置密码
    

    2、生成证书签名请求文件(csr文件)

    openssl req -new -key /etc/nginx/ssl_key/test.key -out /etc/nginx/ssl_key/test.csr
    输入相关信息
    

    3、生成证书签名文件(CA文件)

    openssl x509 -req -days 3650 -in /etc/nginx/ssl_key/test.csr -signkey /etc/nginx/ssl_key/test.key -out /etc/nginx/ssl_key/test.crt 
    输入设置密钥的密码
    

    nginx的https语法配置

    ssl on|off;
    (http、server)
    ssl_certificate file;
    (http、server)
    ssl_certificate_key file;
    (http、server)
    

    配置案例

    server {
        listen 443;
        server_name 192.168.10.10 www.test.com;
        
        ssl on;
        ssl_certificate /etc/nginx/ssl_key/test.crt ;
        ssl_certificate /etc/nginx/ssl_key/test.key;
        
        index index.html index.htm;
        location / {
            root /opt/app/code;
        }
    }
    

    https服务优化

    • 激活keepalive长连接
    keepalive_timeout 100;
    
    • 设置ssl session缓存
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;
    

    场景--配置苹果要求的证书

    • 服务器所有的连接使用TLS1.2以上的版本(openssl 1.0.2)
    • https证书必须使用SHA256以上哈希算法签名
    • https证书必须使用RSA 2048位或ECC 256位以上公钥算法
    • 使用前向加密技术

    更新openssl脚本

    cat update_openssl.sh
    
    #!/bin/sh
    cd /opt/download
    wget https://www.openssl.org/source/openssl-1.0.2k.tar.gz
    tar -zxvf openssl-1.0.2k.tar.gz
    cd openssl-1.0.2k
    ./config --prefix=/usr/local/openssl
    make && make install
    mv /usr/bin/openssl /usr/bin/opensslbak
    mv /usr/include/openssl /usr/include/opensslbak
    ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
    ln -s /usr/local/openssl/include/openssl /usr/include/openss
    echo "/usr/local/openssl/lib" >> /etc/ld.so.conf
    ldconfig -v
    openssl version -a
    

    直接生成证书签名文件(CA文件)

    openssl req -days 36500 -x509 -sha256 -nodes -newkey rsa:2048 -keyout /etc/nginx/ssl_key/test.key -out /etc/nginx/ssl_key/test_apple.crt
    输入相关信息
    

    配置案例

    server {
        listen 443;
        server_name 192.168.10.10 www.test.com;
        
        ssl on;
        ssl_certificate /etc/nginx/ssl_key/test_apple.crt;
        ssl_certificate /etc/nginx/ssl_key/test.key;
        
        index index.html index.htm;
        location / {
            root /opt/app/code;
        }
    }
    
  • 相关阅读:
    OpenJudge计算概论-寻找山顶
    OpenJudge计算概论-配对碱基链
    OpenJudge计算概论-分配病房
    OpenJudge计算概论-计算鞍点
    OpenJudge计算概论-错误探测
    OpenJudge计算概论-文字排版
    OpenJudge计算概论-二维数组右上左下遍历
    OpenJudge-计算点的距离并排序
    OpenJudge计算概论-找最大数序列
    Openjudge计算概论-奇数单增序列
  • 原文地址:https://www.cnblogs.com/liangjingfu/p/10677625.html
Copyright © 2011-2022 走看看