无法在 openssl 中加载证书

Sah*_*thi 0 ubuntu ssl openssl

在 Ubuntu 中,当我尝试执行时,openssl s_server -cert server.pem -www我收到以下消息

unable to load certificate
3074300104:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:696:Expecting: TRUSTED CERTIFICATE
Run Code Online (Sandbox Code Playgroud)

请帮忙。

Ste*_*ski 5

server.pem 实际上是证书吗?跑

grep '^-----.*CERTIFICATE' server.pem
Run Code Online (Sandbox Code Playgroud)

您应该会看到证书的开头和结尾:

server.pem:-----BEGIN CERTIFICATE-----
server.pem:-----END CERTIFICATE-----
Run Code Online (Sandbox Code Playgroud)

如果您没有看到此输出,则您没有使用有效的证书。

另外,我注意到您正在运行以下不寻常的命令:

openssl s_server -cert server.pem -www
Run Code Online (Sandbox Code Playgroud)

此命令执行:

  • s_server - 启动一个非常基本的 openssl 服务器
  • -cert server.pem - 使用证书 server.pem
  • -www - “在客户端连接时向客户端发送一条状态消息。这包括有关使用的密码和各种会话参数的大量信息。输出为 HTML 格式,因此此选项通常与 Web 浏览器一起使用。”

openssl s_server一般只用于调试。你为什么使用openssl s_server?你想达到什么目的?

  • @Sahithi,如您的命令输出所示,该文件*不*包含证书和密钥。`server.pem` 只包含密钥,因此当它显示“无法加载证书”时,`-cert` 是正确的。没有证书。 (2认同)