自签名根证书(CA证书)颁布

操作流程

  1. openssl genrsa -out rootCA.key 2048`
    
    • genrsa 是 OpenSSL 中的一个命令,用于生成 RSA 私钥。RSA 是一种广泛使用的非对称加密算法,通常用于 SSL/TLS 加密、数字签名和密钥交换
    • -out rootCA.key 将生成的文件输出到rootCA文件
    • 2048 指定了生成的 RSA 密钥的位数。在此命令中,密钥的大小为 2048 位。
  2. 创建文件rootCA.cnf,其中alt_names下的参数分别为域名(DNS)以及 IP,该参数会在证书验证后对请求域名和ip地址进行校验

    [ req ]
    default_bits       = 2048
    prompt             = no                                                                                                 
    default_md         = sha512
    distinguished_name = dn
    req_extensions     = req_ext            	                                                                                                                                                                                                        					           	  
    [dn]
    C = CN                                                                                                                  
    ST = Beijing
    L = Beijing
    O = orgnaization
    OU = organizationUnit                                                                                                  
    CN = release                                                                                                            
    [ req_ext ]                                                                                                             
    subjectAltName = @alt_names                                                                                             
    [ alt_names ]
    DNS.1 = release.local
    DNS.2 = repo.local
    IP.1 = 192.168.140.50
    
  3. 根据rootCA.cnf文件生成CA证书

    openssl req -x509 -new -key rootCA.key -sha512 -days 3650 -out rootCA.crt -config rootCA.cnf -extensions req_ext
    
    • -x509 是一个选项,用于指定生成一个 自签名证书,而不是一个证书签名请求(CSR)
    • -new 选项表示生成一个新的请求或证书
    • -key rootCA.key 指定了证书签名所使用的私钥,即rootCA.key
    • -sha512 选项指定在生成证书时使用 SHA-512 哈希算法
    • -days 3650 设置证书的有效期为 3650 天,即 10 年
    • -out rootCA.crt 指定输出文件的名称。生成的自签名证书将保存为 rootCA.crt 文件。这个文件通常是 .crt 或 .pem 格式
    • -config rootCA.cnf 指定 OpenSSL 配置文件。rootCA.cnf 是配置文件的路径,它定义了证书生成过程中的一些选项(如证书的 DN 信息、扩展部分等)。
    • -extensions req_ext 选项指示 OpenSSL 在生成证书时应用名为 req_ext 的扩展部分。req_ext 是在 rootCA.cnf 配置文件中定义的部分,通常用于配置证书扩展,如 Subject Alternative Name (SAN)。
  4. 查看证书信息是否正确。

    openssl x509 -in rootCA.crt -text -noout
    

    在这里插入图片描述

cnf 文件配置说明

[ req ] 部分:

  • default_bits = 2048
    指定生成的 RSA 密钥 的位数为 2048 位。2048 位是常见的 RSA 密钥长度,具有足够的安全性,且计算性能较好。
  • prompt = no
    默认情况下,OpenSSL 会在生成证书请求时提示你输入有关组织和证书的信息。设置 prompt = no 会禁用这些提示,并直接从配置文件中获取相关信息。
  • default_md = sha512
    设置默认的 消息摘要算法 为 SHA-512。
  • distinguished_name = dn
    指定 distinguished_name 部分的配置名称为 dn,该部分会提供证书中有关主题的详细信息(如国家、组织等),这里的dn对应下面的dn标签
  • req_extensions = req_ext
    这是指向扩展部分的配置,指示 OpenSSL 使用 req_ext 部分中的扩展设置(例如 subjectAltName),对应下面的req_ext标签

[ dn ] 部分:

这个部分包含了 Distinguished Name(DN),它是证书中表示身份的基本信息。

  • C = CN
    证书的 国家(Country)为 中国(China)。CN 是中国的国家代码。
  • ST = Beijing
    证书的 省份/地区(State)为 北京。
  • L = Beijing
    证书的 城市(Locality)为 北京。
  • O = nso
    证书的 组织(Organization)名称为 nso。
  • OU
    证书的 组织单位(Organizational Unit)为 nsu。
  • CN
    证书的 公共名称。通常是服务器的域名或 IP 地址。

[ alt_names ] 部分:

这是 Subject Alternative Name(SAN) 部分的定义。该部分列出了证书的额外名称信息,它可以包括 DNS 名称和 IP 地址。SAN 是 SSL/TLS 证书中用于多个域名或 IP 地址的扩展,支持证书被用于多个服务或服务器,主要用于证书校验时会对域名进行校验,用于处理您正访问站点的安全证书上的名称无效,或者与站点名称不匹配的问题

  • DNS.1 = 域名。使用域名访问时候检验其域名。
  • IP.1 = ip地址。使用ip地址时校验ip地址是否存在对应项。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值