zoukankan      html  css  js  c++  java
  • openssl实现CA自签证书和颁发数字证书

    1、 测试环境准备:

    CA签署服务器:192.168.2.181

    WEB服务器:192.168.2.180

    CA安装openssl  WEB服务器使用nginx

    2、 CA生成自签证书:

    2.1 为CA提供私钥

    (umask 077;openssl genrsa -out private/cakey.pem 2048)
    

     

    umask:存放CA私钥文件权限700

    genrsa:使用rsa加密算法

    -out:指定私钥存放位置

    2048:密钥长度

    2.2 生成自签证书

    (umask 077;openssl genrsa -out private/cakey.pem 2048)
    

     

    req:生成证书工具

    -x509:生成一个自签署证书

    -key:指定密钥文件

    -out:证书位置

    -days:证书期限

    Common Name:很重要,部署web服务器时一定对应到web服务器的域名。

    填写的信息,在/etc/pki/tls/openssl.cnf可配置默认。

    /etc/pki/CA下目录结构:需手动建文件index.txt和serial

    echo '01' > serial  指定起始号

    touch index.txt

    目前,一个自签署的CA可以使用了。

     

    3、 web服务器

    为Web服务器提供私钥

    (umask 077;openssl genrsa 2048 > nginx.key)
    

     

    申请证书申请请求

    openssl req -new -key nginx.key -out nginx.csr
    

    Common Name:一定要填写正确,就是客户端访问时的域名。

    其他和自签署证书一样。

     

    发送签署请求到CA

    4、 CA签署证书

    openssl ca -in /root/nginx.csr -out nginx.crt -days 3655
    

     

    然后把nginx.crt发送给web服务器。

    5、 Web服务器使用ssl

    这里使用docker容器

    docker run --name nginx -p 80:80 -p 443:443 -v /etc/nginx/nginx.conf:/etc/nginx/nginx.conf -v /etc/nginx/conf.d/:/etc/nginx/conf.d/ -v /etc/nginx/ssl/:/etc/nginx/ssl/ -v /var/www/python/:/var/www/python/ -d nginx
    

    /etc/nginx/conf.d/python.conf文件配置使用ssl

    server {
    
        listen 80;
    
        listen 443 ssl;
    
            server_name  www.mynginx.com;
    
       ssl_certificate /etc/nginx/ssl/nginx.crt;
    
            ssl_certificate_key /etc/nginx/ssl/nginx.key;
    
        location / {
    
            root   /var/www/python;
    
            index  index.html index.htm;
    
             }
    
    }
    

    /etc/nginx结构

     

    Windows配置hosts,浏览器访问:

     

  • 相关阅读:
    AJAX以及XMLHttpRequest
    理解Promise对象
    HTTP报文整理
    前端 — URL、URI、URN概念和区别整理,以及URL语法规则
    gulp与webpack的区别
    Sass和less的区别是什么?用哪个好
    Vue3.0 && Vue3.0初体验 一
    Promise入门详解和基本用法
    js对象方法大全
    hash模式和history模式 实现原理及区别
  • 原文地址:https://www.cnblogs.com/jjzd/p/7413371.html
Copyright © 2011-2022 走看看