生成安全自签名证书的正确方法

生成安全自签名证书的正确方法

我有几个网站想要安装自签名 SSL 证书。我尝试了以下各种指南,例如这个(所有提供的说明或多或少都完全相同)。但是,给出的说明在安全方面似乎已经过时了。我将是唯一一个在网站上使用 SSL 的人;除非人们深入研究,否则他们不会知道 HTTPS 已启用。

例如,Chrome 显示此信息对于我的网站来说,此信息显示为 ServerFault。如何使用当前加密标准生成正确、安全的 SSL/TLS 证书?如果重要的话,服务器正在运行 Ubuntu 14.10 Server 和 Apache 2.4。

答案1

我立即发现有两件事是错误的。

  1. 您拥有 *.example.com 的证书,但您以以下身份访问该网站https://example.com。父域不接受通配符证书。通过以下方式访问https://www.example.com或制作一份新证书。
  2. 您在证书中使用了 SHA1 哈希。这被认为是错误的。OpenSSL-sha256中的开关应该可以解决这个问题。以下是一组开关示例:openssl req -new -newkey -sha256 rsa:2048

您可能还想检查 Apache 中的 SSL 设置,特别是允许使用哪些算法。至少关闭 SSLv2/SSLv3。如果只有您,我会关闭低于 TLSv1.2 的所有内容,并且只选择高级密码。

下面是从经常引用的页面中摘取的一个例子(\为了打破连续的字符串):

SSLProtocol ALL -SSLv2 -SSLv3
SSLHonorCipherOrder On
SSLCipherSuite ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128: \
   DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS

编辑:无论哪种方式,Chrome 和 Firefox 都不会对自签名证书做出良好的反应,除非您将它们(和/或您的操作系统)配置为专门信任签署它们的根 CA。

相关内容