明文证书如何编码为 PEM / CRT 格式?

How is a cert in plaintext encoded to PEM / CRT format?

我刚从域名注册商处购买了 SSL 证书。

他们只提供了我:

(没有 .key 文件)

他们神奇地创建了证书后,我不得不从他们的网页上复制明文。

我的 SSL 证书如下所示:

-----BEGIN CERTIFICATE-----
MIIGJTCCBQ2gAwIBAgIQD5EJV21qWTH5W6AhivSAEzANBgkqhkiG9w0BAQsFADBZ
<more string>
-----END CERTIFICATE-----

问题:

  1. 如果我创建一个新的“cert.pem”文件并粘贴我的 SSL 证书的纯文本,它是完全 pem 编码还是我还要进一步处理吗?

  2. 如果我创建一个新的“cert.crt”文件会怎么样?我可以直接将我的 SSL 证书的纯文本粘贴到那里而无需进一步编码吗?

  3. 现在可以在 HTTPS 请求中将任一文件作为客户端证书传递吗?

编辑: 正如@Marc 提到的,我应该在上面说“文本”而不​​是“纯文本”。除了 headers,证书不是明文形式。

你所说的“纯文本”是 PEM 编码,它是 DER(或 BER 或 CER)文件的 base-64 编码,带有额外的 headers。

.crt 通常用于 PEM 编码。但实际的扩展名并不重要。

您绝对可以在您的客户端中使用显示的证书(如何使用取决于所使用的语言)。

但是,您需要密钥。如果您向他们发送了 CSR,则密钥应该已经在您手中(您将 public 密钥作为 CSR 的一部分发送给他们,但私钥由您保留)。如果您没有向他们发送 CSR,他们会为您生成密钥对,并且应该有办法下载私钥。