获取子域的免费 SSL 证书

Sab*_*Sab 8 domain website ssl subdomain

我有一个来自no-ip.org. 我想为我的域获得一个免费的 SSL 证书。这甚至可以用于子域,如果可以,我的选择是什么?

Ste*_*ngs 10

在 Web 或邮件服务器上使用证书至少有三个选项:

选项 0:从 Let's Encrypt 获取证书

Let's Encrypt可能是您获得免费的、受浏览器信任的 SSL 证书的一种方式。这是一个新选项,因为这个问题被问到了。

Let's Encrypt 的工作方式与其他 CA 略有不同。您在服务器上安装了一个小型代理,它会每隔几个月自动更新您的证书。

我还不太确定这个选项是否有效,因为有一些 GitHub 问题在讨论允许无 IP 域与其服务一起使用的更改:

即使这在今天不起作用,也要密切关注它,因为它似乎很快就会准备好。

选项 1:获取由证书颁发机构 (CA) 签署的 SSL 证书

使用由 CA 签署的证书的优点是您的访问者会自动信任您的证书。操作系统和 Web 浏览器附带受信任的根证书列表,默认情况下,只有由这些受信任证书签名的证书才被视为受信任。

缺点是主要操作系统和浏览器中包含的大多数 CA 对其服务收费。

CA 确实为子域提供证书;但是,他们通常有某种简单的验证过程来证明您可以控制该子域。对于为 no-ip.org 和其他动态 DNS 提供商的子域颁发证书,不同的 CA 可能有不同的政策。

您可能会调查的潜在 CA 的一小部分列表是:

选项 2:从信任网络提供商处获取 SSL 证书

我所知道的唯一信任网络提供商是CAcert.org。这是一个提供免费 SSL 证书的证书颁发机构。但是,在足够多的其他 CAcert.org 用户验证您的身份之前,证书不会验证有关您的域的任何信息。一旦您获得了足够的“保证点”,您就可以为您的证书添加一个名称并拥有更长的到期日期。

但是,我不认为CAcert.org 的根证书默认包含在大多数浏览器中。您的访问者需要安装此根证书,否则他们将收到可怕的证书警告:

不受信任的证书错误

选项 3:生成自签名证书

如果实在买不到证书,可以创建自签名证书。这不需要任何 CA,但其他计算机不会自动信任您的证书。访问由自签名证书保护的网站的访客将收到可怕的证书警告。

根据您的系统,有不同的方法可以做到这一点。如果您使用的是 OpenSSL,则可以使用Akadia.com 提供的说明

# Generate a private key
openssl genrsa -des3 -out server.key 1024

# Generate a certificate signing request (CSR)
openssl req -new -key server.key -out server.csr

# Generate the self-signed certificate
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
Run Code Online (Sandbox Code Playgroud)

然后server.cst,您将安装在您选择的 Web 服务器中。