zoukankan      html  css  js  c++  java
  • nginx添加ssl证书

    1.为什么使用ssl证书

    1. 数据加密传输,防止窃听
    2. 可以进行数据完整性检查,防篡改
    3. 可以进行身份验证,防冒充

    提示:登陆时用HTTPS可以防止别人截获用户名和密码

    1.1 lnmp安装

    未安装lnmp环境的,可以点击安装地址,进行安装

    1.2SSL通信过程

    1. 客户端向服务器发请求,请求证书
    2. 服务器把证书发给客户端
    3. 客户端对比证书,成功进入不一步,否则告警
    4. 服务器收到对称密钥后保存,给客户端一个应答
    5. 客户端接收响应,这样就完成了SSL连接,后面的通信用对称密钥加密数据传输

    1.3自签SSL证书

    #生成一个RSA私钥,1024是加密强度,一般是1024或2048 
    openssl genrsa -out private.key 1024
    
    #生成一个证书请求
     openssl req -new -key private.key -out cert_req.csr
    
    #自己签发证书,如果要权威CA签发的话,要把cert_req.csr发给CA
    openssl x509 -req -days 365 -in cert_req.csr -signkey private.key -out server_cert.crt

     1.4编辑配置文件nginx.conf

    server{
            listen 80;
            server_name lnmp;
            rewrite "^/(.*)$" https://lnmp/$1 break; #访问时做自动跳转
    }
    
    server {
            listen       443 ssl;
            server_name  localhost;
            ssl_certificate      /application/nginx/key/server.crt;
            ssl_certificate_key  /application/nginx/key/server.key;
            ssl_session_cache    shared:SSL:1m;
            ssl_session_timeout  5m;
    }
    
    #重启服务
    使用https://lnmp #访问网站,当前主机域名解析为lnmp

     1.5curl测试

    curl http://lnmp/ 会自动跳转到https://lnmp中

    1.6 浏览器测试

  • 相关阅读:
    Spring bean的自动装配
    JSP三大指令
    JSP九大内置对象
    Java异常的捕获顺序(多个catch)
    Integer.parseInt(s)和Integer.valueOf(s)之间的区别
    mysql忘记密码(MySQL5.7)
    java的四种内部类
    内存泄露查询
    深度优先和广度优先比较
    循环队列
  • 原文地址:https://www.cnblogs.com/anyux/p/8183886.html
Copyright © 2011-2022 走看看