直到昨天晚上和今天,我对任何与安全套接字层相关的东西都是全新的。我需要获得一个自签名证书才能继续应用程序注册过程,以便我可以在我编写的应用程序中实现 OAuth。我浏览了一个关于如何生成证书的很好的教程 here .我是一个 ubuntu 用户,如果你没有点击链接来弄明白的话。我一直在尝试生成 PEM 格式的自签名 1024 位 RSA key 编码 x.509 证书。设置配置并按照教程中的所有操作完成后(当然除了将环境相关数据指定到我自己的环境之外)。完成配置后生成新证书和 key 的命令是:
强制 SSL 在备用位置查找配置文件(服务器配置文件):
export OPENSSL_CONF=~/myCA/exampleserver.cnf
生成证书和 key :
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
最佳答案
我在遵循您提到的同一教程时遇到了类似的问题。就我而言,错误是:
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 个字符的代码。这解决了我的问题。
关于SSL ASN1 编码例程和 x509 证书例程错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14679641/