自签发https证书

sam 2023年11月22日 78次浏览
  1. 生成根证书(CA证书)
    首先,你需要创建你自己的 Certificate Authority (CA)。打开终端,然后运行以下命令:
   openssl genrsa -des3 -out myCA.key 2048

这将创建一个 RSA 私钥。你需要为该密钥设置一个密码。
然后,创建根证书:

   openssl req -x509 -new -nodes -key myCA.key -sha256 -days 36500 -out myCA.pem

你将需要输入你先前创建的密码,然后提供一些信息。这将创建一个名为 myCA.pem 的文件,这是你的公开证书。
2. 创建域名证书
首先,创建一个证书签名请求:

   openssl req -new -newkey rsa:2048 -nodes -out mydomain.csr -keyout mydomain.key -subj "/C=US/ST=YourState/L=YourCity/O=YourOrganization/CN=*.domain.of.yourself"

然后,创建一个扩展文件 mydomain.ext,写入以下内容:

  authorityKeyIdentifier=keyid,issuer
  basicConstraints=CA:FALSE
  keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
  subjectAltName = @alt_names
  
  [alt_names]
  DNS.1 = *.domain.of.yourself
  DNS.2 = domain.of.yourself

最后,使用你的 CA 和扩展文件签名证书请求:

   openssl x509 -req -in mydomain.csr -CA myCA.pem -CAkey myCA.key -CAcreateserial -out mydomain.crt -days 36500 -sha256 -extfile mydomain.ext

这将创建一个名为 mydomain.crt 的文件,这是你的域名证书。
3. 将CA证书导入到浏览器
这个步骤依赖于你使用的浏览器和操作系统。在大多数情况下,你可以打开浏览器的设置或选项,找到证书管理的部分,然后导入你的 myCA.pem 文件。
在 macOS 的 Chrome 中,你可以在 "设置" -> "隐私和安全" -> "更多设置" -> "管理证书" -> "颁发机构" 中导入你的 CA 证书。
请注意,以上步骤仅适用于开发和测试环境。在生产环境中,你应该使用一个公认的证书颁发机构(例如 Let's Encrypt、DigiCert 等)颁发的证书。