直到昨天晚上和今天,我对任何与安全套接字层相关的内容都是新手。我需要获得一个自签名证书才能继续进行应用程序注册过程,以便我可以在我正在撰写的应用程序中实现OAuth。我浏览了一个关于如何生成证书here的好教程。我是一个ubuntu用户,如果你没有点击链接来解决这个问题。我一直在尝试以PEM格式生成自签名的1024位RSA密钥编码x.509证书。设置配置并完成教程后的所有操作(当然,除了将环境相关数据指定到我自己的环境之外)。在完成配置后生成新证书和密钥的命令是:
强制SSL在备用位置(服务器配置文件)中查找配置文件:
export OPENSSL_CONF=~/myCA/exampleserver.cnf
生成证书和密钥:
openssl req -newkey rsa:1024 -keyout tempkey.pem -keyform PEM -out tempreq.pem -outform PEM
按照这两个命令显示以下内容:
Generating a 1024 bit RSA private key
...++++++
...............++++++
writing new private key to 'tempkey.pem'
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
-----
我输入我的密码短语,我不断得到的错误是:
problems making Certificate Request
3074111688:error:0D06407A:asn1 encoding routines:a2d_ASN1_OBJECT:first num too large:a_object.c:109:
3074111688:error:0B083077:x509 certificate routines:X509_NAME_ENTRY_create_by_txt:invalid field name:x509name.c:285:name=organizationUnitName
答案 0 :(得分:18)
我按照您提到的相同教程遇到了类似的问题。就我而言,错误是:
problems making Certificate Request
140098671105696:error:0D07A097:asn1 encoding routines:ASN1_mbstring_ncopy:string too long:a_mbstr.c:154:maxsize=2
所以我发现我已经写了一些字符串应该是2个字符长(maxsize=2
),但发生的时间更长。我回到我的配置文件,很快发现我已经写了国家的长名称,而不是2个字符的代码。这解决了我的问题。
答案 1 :(得分:2)
并不熟悉该过程但是,显示“无效字段名称:x509name.c:285:name = organizationUnitName”表示您的组织单位名称无效。
根据digicert.com:组织单位是贵公司的任何一个分支机构订购会计,营销等证书。
答案 2 :(得分:0)
取决于conf文件中的内容,openssl ca工具查找文件中的部分,这些部分查找其他部分,部分名称是必需的,部分中的某些名称/值对是必需的..这个文件提供了相当大的配置空间
当openssl在不同情况下无法识别某个部分内的名称时,会出现您提到的错误,例如:当我为最终实体证书添加自定义oid时,以及在定制ca证书的内容时,我已经看到了它。
如果您发布配置文件以及您对结果ceritifcate的期望,那么我们可以提供帮助。您也可以说明您打算使用证书(例如,在生产网络服务或其他方面确保客户会话安全)
答案 3 :(得分:0)
我遇到了同样的问题,用 C=USA 而不是 C=US