我有一台设备,它可以生成自己的密钥对,并根据这些密钥生成自签名证书。然后它可以从中生成 CSR,我可以从设备中导出该证书。我无法影响证书或 CSR 的内容。
它使用的“CommonName”基于 DeviceName,其中不能包含任何“。”
现在,当我使用本地/私有 CA 签署该 CSR,并将最终证书导入设备,然后转到https://mydevice.local浏览器当然会抱怨,因为证书的“CommonName”是“mydevice”,没有本地域后缀。
openssl 命令是否有配置选项,以便“CommonName”获得预配置的后缀,如本例中的“.local”?此外,我想将相同的字符串添加到“SubjectAltName”,以便 Chrome 也停止抱怨。
答案1
CA 软件可以自由地丢弃该主题并代之以自己的主题。CSR 中的所有内容(公钥本身除外)仅供参考。
为了openssl 请求和openssl ca,使用-subj
选项覆盖主题:
openssl ca -in device.csr -out device.crt -subj "/O=TabascoNet/OU=Devices/CN=mydevice.local"
要覆盖扩展,请使用-extensions
选项,并将所需的扩展(subjectAltName、extendedKeyUsage 等)放入 openssl.cnf 中。