自签名SSL证书可以更新吗?怎么样?


18

我对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
    Kayon.Toga@togaware.com
    (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文件,所以也许我在尝试将其应用于我的情况时搞砸了。

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

任何帮助将不胜感激...还是这个问题更适合/server///superuser//


7
与其否决这个问题,不如提出具体建议,以改进它。
FriendFX

Answers:


23

根据定义,自签名证书只能通过直接信任来信任,即像Firefox这样的Web浏览器显示为“允许例外”过程。直到最后一位的非常具体的证书被声明为“可信”。在不退出此模型的情况下,证书中的任何内容都不能更改,尤其是到期日期,它是证书中包含的数据的一部分。

您可以想象将更新视为一种家庭事务:“更新”证书时,实际上是由年轻的兄弟姐妹代替。客户静默接受新证书,因为它与以前的证书具有相同的血统。自签名证书是固有的孤儿:它们没有祖先。因此,没有同级,也没有自动传输。

(除了这个祖先事情,续签新证书的创建。证书是不可变的。“续签”是一种思考旧证书和新证书之间关系的方法。)

如果您希望能够进行静默续订,则需要一个自签名的CA证书。您从该CA发出服务器证书,然后要求客户信任该CA。当然,这要问很多:您信任的CA是可以伪造整个Internet的CA。基本上,此解决方案是关于创建和维护自己的CA,这是一项责任和一些工作。


下次您生成自签名证书时,请使其长寿。证书大多是为了使吊销工作而过期(证书过期会阻止CRL无限期增长)。对于自签名证书,没有吊销,因此您可以使证书有效期为20年。还是2000年,就此而言(尽管2038年问题可能会在某个时候出现,具体取决于客户端软件)。


感谢您的广泛回答!我想知道与我链接的教程有关的含义是什么。仅用于自签名CA证书吗?我想我只是希望(并在阅读本教程后想到),有一种方法可以从旧密钥中读取私钥,并创建一个新的,“兼容的”密钥……看起来像是“孩子”而不是一个“孩子”。 “孤儿”。很好的类比,顺便说一句!
FriendFX

@FriendFX-您想要的是不可能的。汤姆(Tom)是正确的,将产生新的证书。
Ramhound

@Ramhound-我明白。唯一开放的问题是:该教程的目的是什么?
FriendFX

@FriendFX-它是由一个随机的人在互联网上写的,只是因为他们有一个博客并不意味着他们了解自己在写什么。作者只是没有解释该教程将获得新的证书
-Ramhound13年

3
@FriendFX是的,该教程仅适用于自签名CA证书。如果使用相同的密钥对和主题,则可以创建多个CA证书,每个证书都将作为已颁发证书的有效颁发者;这些证书甚至可以由不同的父CA颁发,这称为“跨链”。
Calrion

3

简短答案:不可以。

信任自签名证书就像信任个人护照而不是签发该护照的国家一样。如果您获得了新护照,那么信任旧护照的人将不会自动信任它,特别是因为它是另一种具有不同属性(护照号码,日期等)的护照;没有任何人明确信任旧护照来知道新护照是可以信任的。


0

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.