10

直到昨天晚上和今天,我对任何与安全套接字层相关的东西都是全新的。我需要获得一个自签名证书才能继续进行应用程序注册过程,以便我可以在我正在编写的应用程序中实施 OAuth。我在这里阅读了有关如何生成证书的不错的教程。我是 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
4

4 回答 4

24

在遵循您提到的相同教程时,我遇到了类似的问题。就我而言,错误是:

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),但发生的时间更长。我回到我的配置文件,很快发现我写的是国家的长名称,而不是两个字符的代码。这解决了我的问题。

于 2014-09-22T09:23:30.130 回答
2

不是很熟悉这个过程,但似乎“无效的字段名称:x509name.c:285:name=organizationUnitName”意味着您的组织单位名称无效。

根据digicert.com:组织单位是贵公司订购证书的任何分支机构,例如会计、营销等。

于 2013-02-04T02:47:32.623 回答
0

这取决于您的 conf 文件中的内容,openssl ca 工具查找文件中的部分,这些部分查找其他部分,某些部分名称是强制性的,部分中的某些名称/值对是强制性的..这个文件提供了相当大的配置空间

当 openssl 在不同场景中无法识别部分内的名称时,您提到的错误就会出现,例如,当我为最终实体证书添加自定义 oid 以及自定义 ca 证书的内容时,我已经看到了它。

如果您在生成的证书中发布您的配置文件和您期望的内容,那么我们可以提供帮助。您还可以说您打算将证书用于什么用途(例如,在生产网络服务或其他东西上保护客户端会话)

于 2014-10-03T12:47:50.957 回答
0

我有同样的问题,有 C=USA 而不是 C=US

于 2021-03-30T19:02:41.350 回答