自签名 SSL 证书可以续订吗?如何续订?

自签名 SSL 证书可以续订吗?如何续订?

我对 SSL 证书还不太熟悉,想知道我用于 HTTPS 的自签名证书是否可以续订以延长其到期日期,而无需网站的所有客户端在第一次访问该网站时或像颁发从头开始创建的新自签名证书时一样经历“允许例外”过程。

成立下列教程展示如何使用更新自签名证书openssl,但我无法使用它,以至于我的浏览器默默接受它而不显示“不受信任的站点”警告屏幕:

  # cd /etc/apache2/ssl
  # openssl genrsa -out togaware.com.key 1024
  # chmod 600 togaware.com.key
  # openssl req -new -key togaware.com.key -out togaware.com.csr
    AU
    ACT
    Canberra
    Togaware
    Data Mining
    Kayon Toga
    [email protected]
    (no challenge password)
  # openssl x509 -req -days 365 -in togaware.com.csr \
            -signkey togaware.com.key -out togaware.com.crt
  # mv apache.pem apache.pem.old
  # cp togaware.com.key apache.pem 
  # cat togaware.com.crt >> apache.pem 
  # chmod 600 apache.pem
  # wajig restart apache2

我的设置与描述的差不多这个答案我正在使用 CRT 和 KEY 文件(来自本教程) 而不是 PEM 文件,所以也许我在尝试将它应用到我的情况时搞砸了一些东西。

再说了,我发现许多论坛条目表明完全不可能更新自签名证书,我必须从头开始创建一个新的证书。

任何帮助都将不胜感激...或者这个问题更适合https://serverfault.com/或者https://superuser.com/

答案1

根据定义,自签名证书只能通过以下方式获得信任:直接信任,即 Firefox 等 Web 浏览器所显示的“允许例外”流程。一个非常具体的证书,直到最后一位,都被声明为“受信任”。如果不退出此模型,证书中的任何内容都无法更改,尤其是证书中包含的数据中的到期日期。

您可以将续签想象成一种家庭事务:当证书“续签”时,它实际上被一个更年轻的兄弟证书所取代。客户端默默地接受新证书,因为它与之前的证书共享相同的祖先。自签名证书本质上是孤儿证书:它们没有祖先。因此,没有兄弟证书,也没有自动传输。

(除了祖先问题,复兴创建新证书。证书是不可变的“续约”是思考新旧证书关系的一种方式。)

如果你想要进行静默续约,那么你需要一个自签名加州证书。您从该 CA 为您的服务器颁发证书,并要求您的客户信任该 CA。当然,这要求很高:您信任的 CA 是可以在您眼中伪造整个互联网的 CA。基本上,此解决方案是关于创建和维护您自己的 CA,这是一项责任,也需要一些工作。


下次生成自签名证书时,请将其设置为长期有效。证书过期主要是为了让撤销工作(证书过期可防止 CRL 无限增长)。对于自签名证书,没有撤销,因此您可以将证书的有效期设置为 20 年。或者 2000 年(尽管2038 年问题可能会在某个时候出现,具体取决于客户端软件)。

答案2

简短回答:不。

信任自签名证书就像信任个人护照而不是签发该护照的国家。如果您获得新护照,信任旧护照的人不会自动信任它,特别是因为它是具有不同属性(护照号码、日期等)的不同事物;明确信任旧护照的人没有理由知道新护照是可以信任的。

答案3

如果您使用自签名证书(我建议在 Windows 上使用 xca),您只需将到期日期设置为 7999-12-31(这是 UTC 的最大时间)并将初始日期设置为 1970-01-01(为了与 PC 中配置错误的时间/日期兼容)

答案4

我刚刚更新了自签名证书,供 postfix/dovecot 服务器和 Thunderbird 客户端使用。Tbird 确​​实不是喧闹。

当我创建原始证书时,我创建了密钥文件。它以 /etc/ssl/private/CERT_NAME_KEY.pem 的形式存储在服务器上

当我创建新证书时,我使用了旧密钥,并使用与 OP 在“教程“。

相关内容