您的位置:首页 > 运维架构

在 MinGW 中使用 OpenSSL 创建证书时的 BUG

2016-09-12 00:00 1406 查看
摘要: 在 MingW 中使用 OpenSSL 输入 -subj 参数时存在一个 bug,导致无法输入 -subj 内容。这个 Bug 是由 MingW 引起的,在 Git for Windows 中普遍存在。

作者: Angus.Fenying <i.am.x.fenying@gmail.com>

日期: 2016-09-12 10:48 AM

以下面的命令为例

openssl req -new -newkey rsa:2048 -sha256 -nodes \
-out sample.com.csr \
-keyout sample.com.key \
-subj "/C=CountryShortName/ST=ProvinceName/L=CityName/O=Example Inc./OU=Web Security/CN=sample.com"

执行后报错

Generating a 2048 bit RSA private key
...............................................................................+++
................................................................................................................+++
writing new private key to 'sample.com.key'
-----
Subject does not start with '/'.
problems making Certificate Request

问题出在 MingW 身上,需要在 -subj 的参数前面加一个斜杠
/
:

openssl req -new -newkey rsa:2048 -sha256 -nodes \
-out sample.com.csr \
-keyout sample.com.key \
-subj "//C=CountryShortName/ST=ProvinceName/L=CityName/O=Example Inc./OU=Web Security/CN=sample.com"

但是第一个
/
使得后面的
/
被认为是 NID 的一部分,这又会导致第一段主题信息被视为
/C=CountryShortName
而不是
C=CountryShortName


结果得到下面的错误:

Generating a 2048 bit RSA private key
.+++
................................................................................................................................................+++
writing new private key to 'sample.com.key'
-----
Subject Attribute /C has no known NID, skipped

为了解决这个问题,可以在
/C=CountryShortName
,前面再加一段
/skip=yes


openssl req -new -newkey rsa:2048 -sha256 -nodes \
-out sample.com.csr \
-keyout sample.com.key \
-subj "//skip=yes/C=CountryShortName/ST=ProvinceName/L=CityName/O=Example Inc./OU=Web Security/CN=sample.com"

就保护了
C=CountryShortName
不被影响。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  openssl mingw bug subject start