自建SSL证书(兼容ios)

打印 上一主题 下一主题

主题 767|帖子 767|积分 2301

于SSL/TLS服务器证书,特别是那些用于HTTPS网站的证书,有几个关键的扩展和属性是必要的,以确包管书可以被客户端(如浏览器)正确辨认和信托。这些细节对于确保加密连接的安全性至关紧张。以下是一些关键的证书详情和扩展:

  • 主题备用名称 (Subject Alternative Name, SAN)
    SAN字段允许证书指定多个资源名称(好比,多个域名或IP地址)。对于现代的浏览器和客户端,此字段险些是必需的,由于它们会检察访问的域名是否包罗在证书的SAN中。
  • 密钥用途 (Key Usage, KU)
    这个扩展定义了证书的密钥可以执行的安全操作。对于服务器证书,通常需要包括“数字签名”(digitalSignature)(证实信息是由私钥持有者签名的)和“密钥加密”(keyEncipherment)(允许使用公钥加密数据,以便只有对应的私钥持有者可以解密)。
  • 扩展密钥用途 (Extended Key Usage, EKU)
    EKU进一步细化了证书的使用场景。对于HTTPS服务器证书,这通常包括“服务器身份验证”(serverAuth)标识符,表明该证书可以用于验证服务器的身份。
  • 根本束缚 (Basic Constraints)
    对于根证书或任何中心CA证书,根本束缚必须设置为CA(证书颁发机构)=TRUE,并且可选地包罗一个路径长度束缚,这指定了从该CA到最终叶子证书之间的中心CA数量上限。对于一个终端实体(好比服务器或客户端)的证书,CA通常应设置为FALSE。
  • CRL分布点 (CRL Distribution Points)
    这个扩展包罗了获取证书吊销列表(CRL)的URL,客户端可以使用这些URL来检查证书是否已被吊销。
  • 证书策略 (Certificate Policies)
    证书策略定义了颁发证书的策略或用途。固然这不是技术上逼迫的,但它提供了关于证书可能被接受用途的信息。
    确保这些扩展和属性正确设置是创建SSL/TLS证书的紧张部分,特别是当你打算让证书被公众信托的客户端(如互联网浏览器)接受时。如果你是自己天生这些证书(好比用OpenSSL),需要确保在证书签名请求(CSR)和/或在证书天生过程中正确指定这些属性。
1、天生根证书

天生rsa私钥
   openssl genpkey -algorithm RSA -out rootCA.key -pkeyopt rsa_keygen_bits:2048
  创建根证书的配置文件
为了确保包罗所有必要的扩展,最好创建一个配置文件(好比命名为rootCA.conf)来定义证书的参数和扩展:
  1. [req]
  2. default_bits = 2048
  3. prompt = no
  4. default_md = sha256
  5. distinguished_name = dn
  6. [dn]
  7. C = CN
  8. ST = GuangDong
  9. L = ShenZhen
  10. O = lll
  11. OU = lll Unit
  12. CN = lll Root CA
  13. [ext]
  14. basicConstraints = critical,CA:TRUE
  15. keyUsage = critical,keyCertSign,cRLSign
  16. subjectKeyIdentifier = hash
  17. authorityKeyIdentifier = keyid:always,issuer
复制代码
这个配置文件定义了证书的DN(Distinguished Name)和一些关键的扩展,如basicConstraints、keyUsage等。
天生自签名根证书(10年有用期):
   openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 3650 -out rootCA.pem -config rootCA.conf -extensions ext
  2. 天生服务器的证书

天生服务器私钥
   openssl genpkey -algorithm RSA -out server.key -pkeyopt rsa_keygen_bits:2048
  创建证书签名请求(CSR)
创建一个名为server.csr.conf的配置文件,以包罗CSR的详细信息
  1. [req]
  2. default_bits = 2048
  3. prompt = no
  4. default_md = sha256
  5. distinguished_name = dn
  6. req_extensions = req_ext
  7. [dn]
  8. C = CN
  9. ST = GuangDong
  10. L = ShenZhen
  11. O = lll
  12. OU = lll Unit
  13. CN = *.lll.com
  14. [req_ext]
  15. subjectAltName = @alt_names
  16. [alt_names]
  17. DNS.1 = *.lll.com
复制代码
天生CSR
   openssl req -new -key server.key -out server.csr -config server.csr.conf
  使用根证书签发服务器证书
创建一个新的配置文件(好比v3.ext)来定义签发的证书应该包罗的扩展
  1. authorityKeyIdentifier=keyid,issuer
  2. basicConstraints=CA:FALSE
  3. keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
  4. subjectAltName = @alt_names
  5. [alt_names]
  6. DNS.1 = *.leve.com
复制代码
签发证书(IOS经测试最大支持825天有用期):
   openssl x509 -req -in server.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out server.crt -days 825 -sha256 -extfile v3.ext
  证书过期可使用此下令重新天生

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

瑞星

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表