openssl -subj 是 OpenSSL 命令行工具中用于处理 X.509 证书主题(Subject)信息的选项。它允许你直接指定或修改证书的主体字段,如国家、省份、城市、组织等.

基本用法

在生成证书或自签名证书时,-subj 选项可以简化输入过程,避免交互式提示。其基本语法为:

openssl <command> -subj "/<属性>=<>/<属性>=<>..."

常见属性

主题字段通常包含以下标准属性(按顺序排列):

  • C:国家代码(例如 CN 代表中国)。
  • ST:省份或州(例如 Beijing)。
  • L:城市或地区(例如 Beijing)。
  • O:组织名称(例如 Example Company)。
  • OU:组织单位(例如 IT Department)。
  • CN:通用名称(例如 www.example.com ,常用于服务器证书 )。

实际示例

生成自签名证书

下列命令生成一个自签名证书,直接指定主题信息:

openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -subj "/C=CN/ST=Beijing/L=Beijing/O=Example Inc./CN=www.example.com"
  • -req:生成证书签名请求(CSR)或自签名证书。
  • -x509:生成自签名证书(而非 CSR)。
  • -newkey rsa:4096 :创建新 RSA 密钥(4096 位)。
  • -keyout 和 -out:指定私钥和证书输出文件。
  • -days 365:证书有效期为 365 天。
生成证书签名请求(CSR)
openssl req -new -keyout key.pem -out csr.pem -subj "/C=US/ST=California/L=San Francisco/O=MyOrg/CN=example.org"

此时不会生成自签名证书,而是生成待 CA 签名的 CSR 文件。

注意事项

  • 属性顺序:属性应按 C, ST, L, O, OU, CN 的顺序排列,否则可能报错。
  • 空值处理:如果某些属性不需要,可跳过或留空(如 -subj “/C=CN/ST=Beijing/L=Beijing/O=Example/CN=www.example.com")。
  • 与 CA 配合:在自建 CA 时,-subj 可用于定义 CA 证书的主题(例如 -subj “/C=CN/O=MyCA/CN=MyRootCA”)。

潜在需求扩展

如果你需要验证证书的主题信息,可使用:

openssl x509 -in cert.pem -noout -subject -issuer

这将输出证书的主体和颁发者字段。

如需进一步操作(如创建 CA 或管理证书生命周期),可参考 OpenSSL 的完整文档

作者:Jeebiz  创建时间:2025-12-10 10:25
最后编辑:Jeebiz  更新时间:2025-12-10 11:49