openssl req -x509 -newkey rsa:2048 -sha256 -days 3650 -nodes -keyout cert-key.pem \
-subj "/C=CN/ST=Local/L=Local/O=Local Technologies Inc./OU=IT/CN=localhost/emailAddress=localadmin@localhost" \
-addext "subjectAltName=DNS:localhost,DNS:*.localhost,IP:127.0.0.1" \
-out cert.crt
-x509:
• 此选项指示 OpenSSL 创建一个自签名证书,而不是 CSR。X.509 是定义公钥证书格式的标准。
-newkey rsa:2048:
• 该选项指定将创建一个新的私钥和 CSR。rsa:2048 表示将生成一个长度为 2048 位的 RSA 密钥。
-sha256:
• 指定使用 SHA-256 哈希函数对证书进行签名。这是 SSL/TLS 证书中常用的安全哈希函数。
-days 3650:
• 指定证书的有效期天数。在此示例中,证书有效期为 3650 天(10 年)。
-nodes:
• 表示“no DES”(不使用 DES 加密)。这个选项表示私钥不会被加密。如果省略此选项,OpenSSL 会使用密码短语加密私钥。
-keyout cert-key.pem:
• 该选项指定生成的私钥的输出文件。私钥将被保存为 cert-key.pem 文件。
-subj "/C=CN/ST=Local/L=Local/O=Local Technologies Inc./OU=IT/CN=localhost/emailAddress=localadmin@localhost":
• -subj 选项用于指定证书的主体信息,其中包括证书创建对象的详细信息。主体字符串中的字段包括:
• /C=: 国家(CN 表示中国)。
• /ST=: 省或州(Local)。
• /L=: 地区或城市(Local)。
• /O=: 组织名称(Local Technologies Inc.)。
• /OU=: 组织单位名称(IT)。
• /CN=: 公共名称(通常是域名,此处为 localhost)。
• /emailAddress=: 证书所有者的电子邮件地址(localadmin@localhost)。
-addext "subjectAltName=DNS:localhost,DNS:*.localhost,IP:127.0.0.1":
• -addext 选项允许你向证书添加扩展信息。subjectAltName 扩展用于指定证书的其他名称,如域名或 IP 地址。在此例中,它包括:
• DNS:localhost: 证书对 localhost 有效。
• DNS:*.localhost: 证书对 localhost 的任意子域名有效。
• IP:127.0.0.1: 证书对 IP 地址 127.0.0.1 有效。
-out cert.crt:
• 指定自签名证书的输出文件。证书将被保存为 cert.crt 文件。