尝试确定在针对 Heartbleed修补 openssl后应该重新启动哪些服务。至少有一篇帖子提到重新启动:
sshd, apache, nginx, postfix, dovecot, courier, pure-ftpd, bind, mysql
编辑:这篇文章建议使用:lsof -n | grep ssl | grep DEL显示仍在使用标记为删除的旧版本 OpenSSL 的进程
我知道您可以通过在命令行“openssl 版本”中键入以下内容来显示您正在使用的 openssl 版本。
前段时间我创建了一个证书和一个密钥,名称与 server.cer 和 server.key 相似。
我的问题是我不确定它们是用什么版本的 openssl 创建的。是否有命令可以用来查找它们是用什么版本的 openssl 创建的?证书和密钥是否存储此信息。
我试图确认他们是否容易受到 openssl heartbleed 安全问题的影响。
在 Centos 6.5 Minimal 安装中,我编译了 Apache、PHP 和 rpm 安装的 Percona。
几天前更新 OpenSSL 后,我在此服务器上使用 SSL 的站点以某种方式容易受到 Heartbleed 的攻击。
我的 Apache 二进制文件根本没有显示它正在使用 libssl.so*,但是当我通过https://filippo.io/Heartbleed/检查它时,它说我的网站实际上易受攻击。
我检查的东西不正确吗?
[root@centos user]# ldd /usr/local/apache2/bin/httpd |grep -i ssl
[root@centos user]#
Run Code Online (Sandbox Code Playgroud)
我已经通过 yum ( yum update openssl openssl-devel)更新了 OpenSSL ,我已经重新编译了 Apache(自 openssl 更新以来四次),我已经重新编译了 PHP(自更新以来),并且我已经重新安装了 Percona。
尽管一切都是最新的,但我仍然收到“网站易受攻击”的消息。
[root@centos user]# openssl version -a
OpenSSL 1.0.1e-fips 11 Feb 2013
built on: Tue Apr 8 02:39:29 UTC 2014
platform: linux-x86_64
options: bn(64,64) md2(int) rc4(16x,int) des(idx,cisc,16,int) idea(int) blowfish(idx)
compiler: gcc -fPIC -DOPENSSL_PIC …Run Code Online (Sandbox Code Playgroud) 我是 OpenSSL 的新手,我正在阅读有关 OpenSSL 编程以连接到服务器的教程:
www.rtfm.com/openssl-examples/part1.pdf
www.rtfm.com/openssl-examples/part2.pdf
Run Code Online (Sandbox Code Playgroud)
不知何故,设置正确的证书比预期的更棘手...... :(
当我使用 openssl s_client 测试消息时:
openssl s_client -connect 123.456.789.0:666 -CAfile test.crt -debug
我收到错误消息
depth=2 C = GB, ST = Greater Manchester, L = Salford, O = COMODO CA Limited, CN = COMODO RSA 证书颁发机构验证错误:num=20:无法获得本地颁发者证书验证返回:0
进而:
错误:14094412:SSL 例程:SSL3_READ_BYTES:sslv3 警报错误证书:s3_pkt.c:1257:SSL 警报编号 42 140685406562208:错误:140790E5:SSL 例程:SSL23_WRITE:ssl failure.c:1257:SSL
这是证书链:
Certificate chain
0
s:myself
i:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Organization Validation Secure Server CA
1
s:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Organization Validation Secure Server CA
i:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA …Run Code Online (Sandbox Code Playgroud) 我尝试在我的 nginx 中设置没有 SSLv3 的 SSL 证书,但 SSL 实验室说,我的服务器有 SSLv3 如何禁用它。
我的配置:
add_header Strict-Transport-Security max-age=31536000;
add_header X-Frame-Options DENY;
ssl_session_cache shared:SSL:10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers "EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA256:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA384:EDH+aRSA+AESGCM:EDH+aRSA+SHA256:EDH+aRSA:EECDH:!aNULL:!eNULL:!MEDIUM:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS:!RC4:!SEED";
ssl_prefer_server_ciphers on;
add_header Strict-Transport-Security 'max-age=31536000; includeSubDomains';
Run Code Online (Sandbox Code Playgroud) 作为序言,我搜索了很多,但似乎无法找到正确的搜索词。
我使用以下命令生成了一个 CSR:
openssl req -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/ssl.key -out /etc/ssl/ssl.csr
Run Code Online (Sandbox Code Playgroud)
使用生成的 CSR,我通过 StartSSL 获得了 2 类签名证书。
问题是当我在我的网站上查看 Chrome 中的证书信息时,它说网站安全性已过时。
也许我需要更改 Apache2 mod_ssl 设置?
或者,如果是证书问题,我需要使用哪些 OpenSSL 选项来生成最新的 CSR 请求?
提前致谢。
我的一个网站的 SSL 证书链不完整,我了解到我应该在虚拟主机文件中引用中间证书。
Comodo 向我发送了两个带有主要 PositiveSSL 的中间证书,COMODORSAAddTrustCA.crt 和 COMODORSADomainValidationSecureServerCA.crt。他们都是在格式
-----BEGIN CERTIFICATE-----
somegibberish
somegibberish
somegibberish
somegibberish
-----END CERTIFICATE-----
Run Code Online (Sandbox Code Playgroud)
所以他们看起来准备参考。当我在 12 月为我的网站购买 SSL 时,我将这两个中间件以及主要的 PositiveSSL 证书上传到同一个文件夹。我添加了SSLCertificateChainFile...下面的行。
<VirtualHost *:443>
...
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/domain.com/domain.com.crt
SSLCertificateKeyFile /etc/apache2/ssl/domain.com/domain.com.key
SSLCertificateChainFile /etc/apache2/ssl/domain.com/COMODORSAAddTrustCA.crt
SSLCertificateChainFile /etc/apache2/ssl/domain.com/COMODORSADomainValidationSecureServerCA.crt
Run Code Online (Sandbox Code Playgroud)
然后我service apache2 reload在命令 shell 中运行,没有任何问题。
我这样做对吗?
更新:我查看了这个页面,它说这SSLCertificateChainFile已被弃用,我应该将所有证书按特定顺序放在所有主证书文件中。我试过了,重新加载了apache2,到目前为止仍然没有明显的问题。
我已购买有效证书:
例如,此站点对其进行验证:https : //sslanalyzer.comodoca.com/?url=www.example.com
但是当我用 openSSL 测试它时,像这样:
openssl s_client -showcerts -connect https://www.example.com:443
我得到
验证返回码:18(自签名证书)
我有一个 thawte 通配符 SSL-Cert for *.my.example.com.
现在我想将它用于我的邮件服务器(主机名:)test.my.example.com。
我/etc/postfix/postfix_default.pem在此文件中编辑并包含了密钥、证书和 CA。
不幸的是 SSL 检查失败并出现错误
未知权威
或者
证书未验证:无法获得本地颁发者证书
我必须在我的配置中更改什么?
有没有办法创建一个(自签名)证书来覆盖所有本地主机 IP,例如 127 的全范围?
我都试过了127.*,127.*.*.*但都没有奏效;我仍然收到 SSL 错误页面警告我该页面(例如 127.2.3.4)与证书不匹配和/或不是受信任的根,尽管我已确保关闭浏览器,删除旧的,并且每次都安装新的。
有一些网页展示了如何在子域中使用通配符,而不是 IP。
openssl ×10
heartbleed ×3
ssl ×3
nginx ×2
apache-2.2 ×1
apache-2.4 ×1
poodle ×1
postfix ×1
security ×1
wildcard ×1