═╬簡箪√嗳

 找回密码
 立即注册
搜索
查看: 35|回复: 0

[原创] 自签100年SSL证书

[复制链接]
发表于 2024-11-4 20:18 | 显示全部楼层 |阅读模式
鉴于某UI软件HTTP登录可以被识别到,购买证书又不便宜。

于是想到了干脆自签,反正也不需要别人访问。
以下教程来自于GPT和我的亲自实践。
创建配置文件:首先创建一个配置文件,用于指定证书的 SAN 信息。例如,创建一个 openssl.cnf 文件,包含以下内容:
  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 = US
  9. ST = California
  10. L = San Francisco
  11. O = My Organization
  12. OU = My Department
  13. CN = example.com  # 主域名,可以是任何一个目标域名

  14. [ req_ext ]
  15. subjectAltName = @alt_names

  16. [ alt_names ]
  17. DNS.1 = example.com          # 主域名
  18. DNS.2 = www.example.com       # 子域名
  19. DNS.3 = sub.example.com       # 另一个子域名
  20. DNS.4 = *.example.net         # 泛域名
复制代码
请根据需要替换 example.com 等域名信息。DNS.x 中可以添加任意数量的域名或泛域名。
生成私钥和证书
使用 OpenSSL 生成私钥、CSR 和自签名证书,并引用刚才创建的配置文件:
  1. # 生成私钥
  2. openssl genpkey -algorithm RSA -out multi_domain.key -pkeyopt rsa_keygen_bits:2048

  3. # 生成自签名证书,有效期100年
  4. openssl req -new -x509 -key multi_domain.key -out multi_domain.crt -days 36500 -config openssl.cnf -extensions req_ext
复制代码
这样生成的 multi_domain.crt 就包含了多个域名和泛域名的信息。
multi_domain.key 是生成的私钥文件。multi_domain.crt 是生成的 100 年有效期自签名证书文件,包含多个域名和泛域名。
验证证书内容
可以通过以下命令检查证书是否包含多个域名和泛域名:
  1. openssl x509 -in multi_domain.crt -noout -text | grep -A1 "Subject Alternative Name"
复制代码
此命令会显示 Subject Alternative Name 信息,确保包含配置文件中指定的所有域名和泛域名。
部署证书将生成的 multi_domain.crt 和 multi_domain.key 文件安装到服务器(如 Nginx、Apache)的 HTTPS 配置中,指定证书和密钥路径。
在客户端信任证书由于这是自签名证书,浏览器默认会显示安全警告。要消除警告,需要手动在客户端信任此证书:
  • Windows:打开“证书管理器”(certmgr.msc),将 .crt 文件导入到“受信任的根证书颁发机构”下。
  • macOS:在“钥匙串访问”中导入 .crt 文件,并设置为“始终信任”。



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

本版积分规则

QQ|Archiver|手机版|小黑屋|═╬簡箪√嗳's BBS

GMT+8, 2024-11-21 15:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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