python-如何将质询密码编码为证书请求
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python-如何将质询密码编码为证书请求,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1823字,纯文字阅读大概需要3分钟。
内容图文
我正在使用linux版本openssl req生成带有质询密码的csr,一切正常,除非它无法打印此属性:
# openssl req -new -key private.key -out server.csr
# openssl req -in server.csr -noout -text
Certificate Request: ...
Attributes:
challengePassword :unable to print attribute ...
我在fedora中使用OpenSSL 1.0.1j进行了测试,而在ubuntu中使用OpenSSL 1.0.1进行了测试,两者都无法将ChallengePassword写入csr文件.
但是如果我使用Windows版本,它可以工作:
# openssl req -in test.csr -noout -text
Certificate Request:
...
Attributes:
challengePassword :00F7FC7937B5366F2231AC891472998C
…
我正在使用SCEP tool的64位openssl:
然后我搜索了openssl文件,发现了这句话:
attributes
this specifies the section containing any request attributes: its
format is the same as distinguished_name. Typically these may contain
the
challengePassword or unstructuredName types. They are currently ignored by OpenSSL’s request signing utilities but some CAs might want
them.
是的,某些CA可能需要它们.我正在使用NDES Windows 2008 R2,它需要质询密码,看起来它不能由openssl req应用程序生成,我可以使用openssl C API还是python / perl?还是我需要修复openssl代码?
我还在sscep问题列表上问了这个问题,他们告诉我我需要将质询密码编码为BMPString.但是我不知道如何编码.有人可以给我指导吗?
解决方法:
让我自己回答我的问题.
要在CSR中启用质询密码属性,我们需要编写ASN可打印字符串,但是默认情况下,openssl req实用程序将写入MBSTRING_ASC字符串,因此它始终返回“:unable to print attribute …”.
这是C代码示例:
将MBSTRING_ASC字符串转换为ASN1_PRINTABLESTRING:
ASN1_STRING *tmp_os = M_ASN1_PRINTABLESTRING_new();
tmp_os->type = V_ASN1_PRINTABLESTRING;
int password_length = strlen(challenge_password);
ASN1_STRING_set(tmp_os, (const unsigned char *)challenge_password, password_length);
向请求添加属性:
X509_REQ_add1_attr_by_NID(req, NID_pkcs9_challengePassword, tmp_os->type, tmp_os->data, password_length);
内容总结
以上是互联网集市为您收集整理的python-如何将质询密码编码为证书请求全部内容,希望文章能够帮你解决python-如何将质询密码编码为证书请求所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。