我有一个客户端应用程序。服务器应用程序给了我一个PEM文件,并要求我使用SSL连接。我使用stunnel并将认证文件指定为PEM文件,并设置client = yes。当我运行stunnel时,我在启动时看到以下错误:
[!] error queue: : error: :SSL routines:SSL_CTX_use_PrivateKey_file:PEM lib [!] SSL_CTX_use_PrivateKey_file: : error: :PEM routines:PEM_read_bio:no start line
PEM文件看起来没问题,它有----- BEGIN CERTIFICATE -----和----- END CERTIFICATE -----。我用
openssl x509 -inform PERM -in filename.pem -text
查看内容,看起来没问题。
知道可能出现什么问题吗?
答案 0 :(得分:2)
我想您想使用给定的证书来验证连接,因此您需要将其指定为CAfile。您可能做的是将其指定为客户端证书,该证书将发送到服务器以验证客户端。但这只是猜测,因为你没有在你的问题中提供配置。
如果您确实想使用客户端身份验证,则还必须提供与证书匹配的私钥。如果你没有指定一个密钥,它将在cert文件中查找它,在你的情况下它没有在那里找到它。
答案 1 :(得分:0)
我有同样的问题。它不了解证书与配置文件在同一目录中。因此,我必须编写证书的完整路径。
cert = /etc/stunnel/xxxxxxxxxx.crt
key = /etc/stunnel/xxxxxxxxxxx.key