2013-10-10 33 views
1

我正在实施Windows MDM。其中,Device发送PKCS#10证书请求的CSR。如何以编程方式更改证书签名请求的主题属性?

当我去http://certlogik.com/decoder,并且解码这个企业社会责任,我得为主题 “CN = B1C43CD0-1624-5FBB-8E54-34CF17DFD3A1 \ 00”

这种 “\ 00”,我们要从中删除因此,我们无法在注册期间安装公司中心应用程序。

我想将此主题更改为任何值,例如“CN = myMDM”。如何更改CSR的Subject属性?

回答

0

一旦您有证书申请,您就不能更改它,因为CSR应该使用您的私钥签名,并且签名绝对包含主题行。

所以,如果你改变任何你需要辞职的,这就需要你解析CSR。所以基本上你应该重建你的CSR,并且当你提供你的通用名(CN)时,简单地剥离值为00(空终止符)的字符。

您留下了以下选项:

  • 正确生成CSR,如上所述,
  • 变化的企业社会责任,消除零值字节并且重新计算所有的长度,并跳过验证,
  • 创建一个特殊证书创建者,在验证或跳过对CSR的签名验证后,将正确的主题置于CSR之外;
+0

我们正在使用此CSR生成证书(将返回到设备)。由于CSR主题包含空字符,因此使用CSR制作的证书在其主题属性中也包含空字符。由于此空字符,在注册期间不会安装中心应用程序,这就是为什么我需要更改证书主题。 – Vaibhav

+0

是的,我明白你想要什么*,但是你不能用任何标准的证书创建库来做到这一点。在答案中让你的选择更加清晰。 –

+0

@Vaibhav你怎么能解决这个问题? –

2

允许证书主题不同于PKCS#10(即CSR)的主题。查看OpenSSL的'req'命令的-subj选项。

由于背后的原因,请考虑这一点;您的CSR由您的私钥签名。签名用于验证CSR的内容没有被修改(这包括主题)。您的公钥已包含在CSR中。 CA创建您的证书并使用其认为合适的CSR主题的任何部分。证书以及来自您的CSR的CA指定主题和公钥由CA的私钥签名。此签名用于验证您的证书的内容未被修改(这包括CA指定的主题)。

相关问题