• 使用OpenSSL创建HTTPS所使用的SSL证书


    首先做以下准备工作

    1、找一个位置创建一个临时使用的文件夹,比如叫demossl。

    2、首找到openssl配置文件openssl.cnf,运行openssl version -a命令

    openssl.cnf文件就位于OPENSSLDIR对应的目录下,拷贝一份openssl.cnf到第一步中创建的demossl文件夹里面。

    3、对拷贝的openssl.cnf做以下修改:

    [ CA_default ]

    dir = ./CA

    # 确保req下存在以下2行(默认第一行是有的,第2行被注释了)

    [ req ]

    distinguished_name = req_distinguished_name

    req_extensions = v3_req

     

    # 确保req_distinguished_name下没有 0.xxx 的标签,有的话把0.xxx0. 去掉

    [ req_distinguished_name ]

    countryName              = Country Name (2 letter code)

    countryName_default = CN

    stateOrProvinceName             = State or Province Name (full name)

    stateOrProvinceName_default = ShangHai

    localityName              = Locality Name (eg, city)

    localityName_default = ShangHai

    organizationalUnitName             = Organizational Unit Name (eg, section)

    organizationalUnitName_default = Domain Control Validated

    commonName         = Internet Widgits Ltd

    commonName_max = 64

     

    # 新增最后一行内容 subjectAltName = @alt_names(前2行默认存在)

    [ v3_req ]

    # Extensions to add to a certificate request

    basicConstraints = CA:FALSE

    keyUsage = nonRepudiation, digitalSignature, keyEncipherment

    subjectAltName = @alt_names

     

    # 新增 alt_names,注意括号前后的空格,DNS.x 的数量可以自己加

    [ alt_names ]

    DNS.1 = abc.example.com

    DNS.2 = dfe.example.org

    DNS.3 = ex.abcexpale.net

     

    4、openssl.cnf中会要求部分文件及目录存在,在demossl目录下执行以下命令:

    [root@localhost]#mkdir -p CA/{certs,crl,newcerts,private}

    [root@localhost]# touch CA/index.txt

    [root@localhost]#echo 00 > CA/serial

     

    然后使用openssl命令生成证书

    在demossl目录下执行以下操作:

    1.生成ca.key并自签署,生成根证书ca.crt

    openssl req -new -x509 -days 3650 -keyout ca.key -out ca.crt -config openssl.cnf

     

    2.生成server.key(名字不重要)

    openssl genrsa -out server.key 2048

     

    3.生成证书签名请求

    openssl req -new -key server.key -out server.csr -config openssl.cnf

    Common Name 这个写主要域名就好了(注意:这个域名也要在openssl.cnfDNS.x)

     

    4.使用自签署的CA,签署server.csr

    openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -extensions v3_req -config openssl.cnf

    #输入第一步设置的密码,一直按y就可以了

    server.crt server.key就是web服务器中使用的文件;ca.crt为根证书,导入浏览器证书中可让浏览器信任网站。

     

    本文转载自https://blog.51cto.com/colinzhouyj/1566438

  • 相关阅读:
    Maven学习总结(12)——eclipse中构建多模块maven项目
    Maven学习总结(11)——Maven Tomcat7自动部署
    Maven学习总结(11)——Maven Tomcat7自动部署
    Json学习总结(1)——Java和JavaScript中使用Json方法大全
    Json学习总结(1)——Java和JavaScript中使用Json方法大全
    Tomcat学习总结(2)——Tomcat使用详解
    Tomcat学习总结(2)——Tomcat使用详解
    Tomcat学习总结(1)——Tomcat入门教程
    Tomcat学习总结(1)——Tomcat入门教程
    【我的物联网成长记6】由浅入深了解NB-IoT
  • 原文地址:https://www.cnblogs.com/liyuchuan/p/12407807.html
Copyright © 2020-2023  润新知