如何从 CA 获得证书?

How to get a certificate from a CA?

我需要从证书颁发机构获得扩展名为 .crt 的证书。 我使用了 openssl 命令,但它生成了一个不适合我使用的自签名证书。

$ openssl genrsa -out client.key 4096
$ openssl req -new -x509 -text -key client.key -out client.cert

如何在 Ubuntu 16.04 中从 CA 获取证书?我需要 .key.crt 个文件。

这些是您需要执行的步骤才能获得由 CA 签名的证书。

  1. 生成非对称密钥对。

openssl genrsa -out localhost.key 2048

  1. 从密钥对生成 PKCS#10(证书签名请求)。

openssl req -new -sha256 -key localhost.key -out localhost.csr

  1. 将上面生成的请求发送给CA(不同的CA接收请求的方式不同)。
  2. CA 回复 PKCS#7(证书链)或仅签名证书(您通常会获得整个证书链,但如果您只获得对等证书,您可以检查他们在那里你可以获得CA证书链来自己构建链)。

  3. 可以将上面收到的PKCS#7转为PEM格式

openssl pkcs7 -in localhost.p7r -inform DER -out localhost.pem -print_certs

  1. 将上述 PEM 证书链关联到您在步骤 1 中生成的私钥。

openssl pkcs12 -export -inkey localhost.key -in localhost.pem -name sslCertificate -out localhost.pfx

您现在拥有一个 PKCS#12 密钥库,可用于保护您的服务器。

所以为了回答你的问题,这就是你可以如何继续第 3 步。

那里有许多著名的证书颁发机构(GeoTrust、Entrust、Verisign、GoDaddy、Comodo 等...)。每个 CA 的定价可能会有所不同,具体取决于您请求的证书类型。您可以访问他们的官方网页以了解更多关于他们所提供的内容。决定使用哪个 CA 后,您可以使用他们的服务来请求要签名的证书(通常在他们的网站上在线)。