我有一个来自 的子域名no-ip.org
。我想为我的域名获取免费 SSL 证书。子域名也可以这样做吗?如果可以,我有哪些选择?
答案1
在 Web 或邮件服务器上使用证书至少有三种选择:
选项 0:从 Let's Encrypt 获取证书
让我们加密这可能是您获得免费、浏览器信任的 SSL 证书的一种方法。这是自提出此问题以来的新选项。
Let's Encrypt 的工作方式与其他 CA 略有不同。您需要在服务器上安装一个小型代理,它会每隔几个月自动更新您的证书。
我还不能确定这个选项是否有效,因为有几个 GitHub 问题讨论了允许 No-IP 域名与他们的服务一起使用的变更:
即使今天不起作用,也要密切关注它,因为它似乎很快就会准备好。
选项 1:获取由证书颁发机构 (CA) 签名的 SSL 证书
使用 CA 签名的证书的优点是您的访问者会自动信任您的证书。操作系统和 Web 浏览器附带了受信任的根证书列表,默认情况下,只有由这些受信任证书签名的证书才被视为受信任。
缺点是大多数主流操作系统和浏览器附带的 CA 都会对其服务收费。
CA 确实会为子域名提供证书;但是,它们通常会采用某种简单的验证流程来证明您有权控制该子域名。不同的 CA 可能对 no-ip.org 和其他动态 DNS 提供商的子域名颁发证书有不同的政策。
您可能需要调查的一些潜在 CA 列表如下:
选项 2:从信任网络提供商处获取 SSL 证书
我知道的唯一一家信任网络提供商是CA证书网站。这是提供免费 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
然后您可以server.cst
在您选择的 Web 服务器上进行安装。
答案2
您可以从 Comodo SSL 获得 90 天的免费子域名证书。这是我发现的唯一一个由广受信任的证书颁发机构提供的证书,免费,并且对子域名有效。我个人曾将它用于 no-ip 提供的免费域名。不幸的是,它的有效期只有 90 天,之后每年收费 100 美元(多年承诺则更低)。