Articles of openssl

没有通用的encryptionalgorithm(ssl_error_no_cypher_overlap)

我的客户报告了这个错误。 我无法复制它。 更重要的是,我无法检测到任何瑕疵: http : //www.digicert.com/ http://www.ssltest.net/ https://www.ssllabs.com/ssldb/所有报告dev.anuary.com有一个有效的证书。 我已经为Google(编辑) ssl_error_no_cypher_overlap ,但没有任何线程提供任何有用的指导。 Cannot communicate securely with peer: no common encryption algorithm(s) (Error code: ssl_error_no_cypher_overlap) CentOS版本6.2(最终版) OpenSSL 1.0.0-20.el6_2.3 nginx 1.0.15-1.el6.ngx 使用http://www.networksolutions.com/SSL-certificates/index.jsp通配符证书。

openssl s_client报告证书确定,但其他客户报告问题

我已经build立了一个SSL证书的服务器,添加了必要的链,并完成了Apache的设置。 我已经testing使用: openssl s_client -CAPath /etc/ssl/certs -connect www.example.org:443 并获得各种输出,包括: Verify return code: 0 (ok) firefox和chrome都对网站感到满意,但是有些客户(包括svn)报告证书被拒绝。 怎么了? 这里是openssl的完整输出: $ openssl s_client -CApath /etc/ssl/certs -connect www.aptivate.org:443 CONNECTED(00000003) depth=3 L = ValiCert Validation Network, O = "ValiCert, Inc.", OU = ValiCert Class 2 Policy Validation Authority, CN = http://www.valicert.com/, emailAddress = [email protected] verify return:1 depth=2 C = US, […]

OpenSSL握手失败

我们最近被迫将我们的生产云服务器从GoDaddy迁移到Azure,因为GoDaddy正在结束他们的云服务器服务。 我们的一台服务器是运行JasperReports Bitnami堆栈的CentOS 5.7。 在迁移过程中,我将所有服务器升级到最新的发行版,并在Ubuntu 12.04LTS上从Azure Bitnami Jasper映像重buildJasper A在JasperServer上安装了SSL证书并正常工作 所有的新服务器都performance的很好,现在问题来了。 我们在GoDaddy上还有一个专门的CentOS 5.8虚拟服务器,在那里(现在),在服务器上有一个站点集合,通过Soap提供来自Jasper的报告。 但是,尝试连接时出现握手失败 #openssl s_client -connect newjasperserver.com:443 CONNECTED(00000003) 9092:error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure:s23_clnt.c:583: 和: #openssl version OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008 新服务器正在运行: #openssl version OpenSSL 1.0.1c 10 May 2012 现在经过大量的研究,OpenSSL <0.9.8k和OpenSSL 1.0.1之间似乎是不兼容的。 我已经确定的选项是: 将服务器迁移到Azure上的CentOS 6.4服务器(理想,但是在政治上困难,不要问为什么) 在原地升级服务器(不支持,我不想在生产服务器上尝试) 擦拭服务器并重build6.4(可能性,但如果我这样做,我会强制选项1) 从服务器中删除OpenSSL并安装一个更新的版本(再一次,我不喜欢在生产服务器上) 安装第二个OpenSSL实例(我的#2选项,但我不确定如何继续) 安装一个替代OpenSSL(还没有开始看这个) 在Jasper服务器上禁用强制encryption,并允许通过http连接(这看起来像我最好的临时修复,直到我可以强制该服务器迁移到Azure) 有没有我错过的select? 在Jasper方面有没有办法允许从旧的OpenSSL的连接?

无法validation第一个证书(RapidSSL / GeoTrust / Ubuntu)

一直在试图让Ubuntu承认GeoTrust SAN证书,没有运气。 浏览器工作正常。 帮帮我? $ openssl s_client -showcerts -connect artsyapi.com:443 CONNECTED(00000003) depth=0 businessCategory = Private Organization, 1.3.6.1.4.1.311.60.2.1.3 = US, 1.3.6.1.4.1.311.60.2.1.2 = Delaware, serialNumber = 4660944, C = US, ST = New York, L = New York, O = Artsy Inc., CN = artsy.net verify error:num=20:unable to get local issuer certificate verify return:1 depth=0 businessCategory = […]

Apache 2.2和OpenSSL 1.0.1之间SSL密码的不一致

我正在使用Apache 2.2.22-1ubuntu1.4和OpenSSL 1.0.1-4ubuntu5.11运行最新的Ubuntu 12.04 LTS 。 我已经configurationApache使用https://wiki.mozilla.org/Security/Server_Side_TLS#Recommended_Ciphersuite中的密码套件列表 它看起来像这样: <VirtualHost *:443> … SSLEngine on SSLCertificateFile /path/to/signed_certificate SSLCertificateChainFile /path/to/intermediate_certificate SSLCertificateKeyFile /path/to/private/key SSLCACertificateFile /path/to/all_ca_certs SSLProtocol all -SSLv2 SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:ECDHE-RSA-RC4-SHA:ECDHE-ECDSA-RC4-SHA:AES128:AES256:RC4-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!3DES:!MD5:!PSK SSLHonorCipherOrder on SSLCompression off </VirtualHost> 该命令显示所有可用的OpenSSL密码。 # openssl ciphers -v 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:ECDHE-RSA-RC4-SHA:ECDHE-ECDSA-RC4-SHA:AES128:AES256:RC4-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!3DES:!MD5:!PSK' |column -t ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 Kx=ECDH Au=RSA Enc=AESGCM(128) Mac=AEAD ECDHE-ECDSA-AES128-GCM-SHA256 TLSv1.2 Kx=ECDH Au=ECDSA Enc=AESGCM(128) Mac=AEAD ECDHE-RSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH Au=RSA […]

OPENSSL保存网站的x509证书

我可以看到这个命令的证书 openssl s_client -host {HOST} -port 443 -prexit -showcerts 如何将网站的x509证书保存在PEM文件中?

更新根CA证书后的Firefox sec_error_unknown_issuer

对于我们的企业networking,我们使用一个内部CA,它直接签署一些Intranet服务器证书。 现在,根证书即将到期。 我试着用下面的OpenSSL命令来更新它: openssl req -new -x509 -days 123 -key root.key -out root.crt 我从我的电脑中删除了旧的证书,并安装了新的证书。 Windows / IE,Chrome和Opera似乎没有问题,但Firefox不会接受它。 试图访问内部网服务器给我sec_error_unknown_issuer错误,指出没有链提供。 我把我的手指search到了骨头,但唯一的答案是我能find的是中间证书从服务器configuration丢失。 但在我的情况下,没有中间的CA! 为什么Firefox不能将服务器证书链接到新的根目录? 所有其他浏览器似乎能够,甚至公开openssl verify说,一切正常。 有任何想法吗?

任何方式让openssl从一开始就用400(-r ——–)权限生成私钥?

我使用openssl在脚本中生成私钥和CSR。 脚本需要先生成密钥,然后调用chmod 400 whatever.key来将私钥的权限更改为更安全的密钥。 有没有什么办法消除第二步,并从一开始就用适当的权限openssl创build文件? 没有私钥可以被其他进程读取,即使是一毫秒,似乎也更清洁。 你可以在脚本中使用umask来做这样的事情吗?还是有另一种方式?

我如何使用openssl从HTTP GET请求获取结果?

我需要使用openssl在shell脚本中执行一些HTTP GET请求。 下面显示了我正在使用的线路。 这是parsing以下格式的XML响应的内容。 <Result>success</Result> <Result>failure</Result> echo -e "GET /test HTTP/1.1\r\nHost:$(hostname)\r\n\r\n" | openssl 2>&1 s_client -quiet -connect server-url:443 | grep -o -P –color '(?<=Result\>).*(?=\</Result)' 这工作,并相应地返回string“成功”或“失败”。 我面临的问题是openssl命令在执行GET请求后不会终止,而是坐在那里等待更多的input。 我相信这是由于隐含的-ign_eof防止由-quiet选项引起的自动终止。 我已经尝试使用-no_ign_eof选项,但是这会导致openssl命令在GET请求收到响应之前终止,所以我不能得到响应的内容,如果我使用它。 我怎样才能修改这个命令,所以我可以传递GET请求通过stdin(要求,因为我想把它放在一个循环),但有openssl命令后,每个请求终止?

openssl安全重新协商(不支持)

我正在运行在Ubuntu 14.04 LTS服务器上实现的Web服务。 我在使用openssl version 0.9.7m的客户端和使用openssl 1.0.1f的服务器之间debugging了一段时间之后的 TLSv1 连接中断 。 我自己没有访问客户端的权限,只能访问服务器和路由器。 当我运行openssl s_server代替服务器时,我看到客户端连接时secure renegotiation not supported消息secure renegotiation not supported 。 重新谈判并不一定与连接问题有任何关系,但我试图理解重新谈判。 到目前为止,我还没能find以下问题的答案: 什么是重新谈判的典型触发器? 如果安全协商不被支持,它是不安全的吗? 重新协商是由客户端还是服务器端的代码启动,还是可以在某个时候启动? 有没有办法强制与openssl s_server和/或openssl s_client进行实验呢?