不包括 Locality 的 OpenSSL CSR 签名

OpenSSL CSR signing not including Locality

我正在尝试签署生成的 CSR:

openssl req -new -key private/web.key.pem -sha256 \
  -extensions v3_ca -out certs/web.csr.pem \
  -subj "/C=DE/ST=Example State/L=Exmaple City/O=Example Org/OU=Example Org Unit/CN=example.com/emailAddress=foo@example.com"

当我用

检查CSR时
openssl req -in certs/web.csr.pem -text -noout

Locality 出现(有一个 L=Example City 可见)。但是,当我尝试使用

签署 CSR 时
openssl ca -days 365 -keyfile private/ca.key.pem \
  -cert certs/ca.cert.pem -extensions v3_ca -md sha256 \
  -in certs/web.csr.pem -out certs/web.cert.pem

主题中没有包含Localty/City,但在X509v3扩展中的"DirName"中可见。我很确定我在这里遗漏了一些明显的东西,但我需要一些帮助。

解决方法很简单。我在我的政策中遗漏了 localityName,显然它不会被包含在内。这是一个工作示例:

[ policy_anything ]
countryName = optional
stateOrProvinceName = optional
localityName = optional
organizationName = optional
organizationalUnitName = optional
commonName = supplied
emailAddress = optional