【发布时间】:2017-08-04 13:43:39
【问题描述】:
我不知道这是否是正确的地方,但我会尝试。
我正在尝试使用从 OpenSSL 生成的 ECDSA 证书运行 http.ListenAndServeTLS。
此错误消息失败:tls: failed to parse private key
去了解elliptic.P256(),在代码中有这个注释See FIPS 186-3, section D.2.3。
在这个链接中:http://www.ietf.org/rfc/rfc5480.txt,它说它也被称为secp256r1。
如下所示,OpenSSL 将其识别为 prime256v1。
$ openssl ecparam -name secp256r1 -text -noout
using curve name prime256v1 instead of secp256r1
ASN1 OID: prime256v1
NIST CURVE: P-256
那么有什么问题吗? 如何从 OpenSSL 生成 ECDSA 证书并将其用于我的 Go 代码?
使用generate_cert.go 生成 P256 ECDSA 证书,我的代码可以工作,但如果我尝试使用 OpenSSL 读取密钥文件,它也会失败。
$ openssl ecparam -text -noout -in key.pem
unable to load elliptic curve parameters
140377431725720:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:701:Expecting: EC PARAMETERS
【问题讨论】:
-
我遇到了类似的问题,但是在解析目标服务器的公钥时。因此,我无法生成新证书。