Articles of openssl

如何从httpd apache服务器的JKS文件生成.key和.crt文件

我只有mycert.jks文件。 现在我需要提取并生成.key和.crt文件,并在apache httpd服务器中使用它。 SSLCertificateFile /usr/local/apache2/conf/ssl.crt/server.crt SSLCertificateKeyFile /usr/local/apache2/conf/ssl.key/server.key 任何人都可以列出完成这一切的所有步骤。 我search,但没有具体的例子来理解,混合和匹配的步骤。 请build议! [编辑]从下面的答案按照下面的步骤后得到错误。 8/‎21/‎2015 9:07 PM] Sohan Bafna: [Fri Aug 21 15:32:03.008511 2015] [ssl:emerg] [pid 14:tid 140151694997376] AH02562: Failed to configure certificate 0.0.0.0:4545:0 (with chain), check /home/certs/smp_c ert_key_store.crt [Fri Aug 21 15:32:03.008913 2015] [ssl:emerg] [pid 14:tid 140151694997376] SSL Library Error: error:0906D06C:PEM routines:PEM_read_bio:no start line (Expecting: TRUSTED CERTIFICATE) […]

IIS 6.0 SSL握手错误

大家好我安装一个IIS 6.0服务器中的可信证书。 我在防火墙中打开了端口443,并validation服务器正在侦听该端口。 但是,当使用opensslvalidation时,我得到以下错误 $ openssl s_client -connect HOST:443 -debug -state CONNECTED(00000003) SSL_connect:before/connect initialization write to 0x1001182b0 [0x10080a600] (130 bytes => 130 (0x82)) 0000 – 80 80 01 03 01 00 57 00-00 00 20 00 00 39 00 00 ……W… ..9.. 0010 – 38 00 00 35 00 00 16 00-00 13 00 00 […]

如何禁用组时禁用某些SSL密码?

我希望在我的nginx SSL环境中启用SSL密码EDH-DSS-DES-CBC3-SHA (也称为TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA ),以支持Windows XP上的IE8。 nginx的基本SSL密码是: 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:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK EDH-DSS-DES-CBC3-SHA通过!DES被禁用。 我试图把这个密码放在禁用规则之前(在DHE-RSA-AES256-SHA和!aNULL )和之后(作为最后一个参数),但都没有工作。 如何启用密码EDH-DSS-DES-CBC3-SHA而不启用所有DES或手动禁用其他DES密码? 版本信息:nginx 1.7.8,OpenSSL 1.0.1e

MySQL的SSL错误,只有从Windows / OSX连接时

我正在使用openssl生成ssl证书,我正在使用SSLencryption连接到MySQL。 当我从本地主机环境连接时(甚至当我通过服务器公共IP连接时,我也已经成功地从Web服务器框连接),这工作正常。 但是,当我尝试从我的本地开发机器连接时,我得到一个SSL errror。 从主机平台连接时 mysql -u metrics -p -h 45.33.xx –ssl-key = client-key.pem –ssl-ca = ca.pem –ssl-cert = client-cert.pem input密码: 欢迎来到MySQL监视器。 命令以; 或\ g。 你的MySQL连接ID是136 … 当从Mac开发机器连接时,我用scp把证书/密钥文件复制到我的开发机器上 mysql -u metrics -h 45.33.xx -p –ssl-key = client-key.pem –ssl-cert = client-cert.pem –ssl-ca = ca.pem input密码: 错误2026(HY000):SSL连接错误:错误:00000001:lib(0):func(0):原因(1) 这是我所做的努力来解决这个问题 我在服务器和本地机器上生成了cert / key / ca的校验和,它们是相同的 我已经看了无法连接到MySQL 5.5与SSL服务器故障问题没有想法解决了这个问题 我已经debuggingSSL通过启动openSSL服务器(在MySQL服务器上),并从我的本地机器连接,再次没有问题。 如果它有所不同,服务器都运行Ubuntu […]

在Mac OS X Server上升级openssl / mod_ssl?

上下文:我想在Mac OS X Server 10.6.7上设置一个SVN服务器,并且遇到“SSL错误parsingtlsext”问题。 我已经尝试更改所述的SSLProtocol选项,但是我只是得到了“糟糕的解压缩”错误。 另一个解决scheme似乎是将openssl升级到0.9.8m或更高。 我可以下载和编译openssl,但是我不知道将其挂载到Apache和mod_ssl的默认安装的最佳方式。 我想尽可能地使用内置的Apple软件,最好不要覆盖它们的openssl版本。 如何在Mac OS X Server 10.6上更新mod_ssl以使用新版本的openssl?

curl:无法获得本地发行人证书。 如何debugging?

我有一个奇怪的问题。 更新我的LAMP开发机器(Debian)到PHP 7.之后,我无法通过Curl连接到特定的TLSencryptionAPI。 有问题的SSL证书是由thawte签署的。 curl https://example.com 给我 curl: (60) SSL certificate problem: unable to get local issuer certificate 而 curl https://thawte.com 当然这也是Thawte的作品。 我可以通过其他机器上的HTTPS访问API网站,例如我的桌面通过curl和浏览器。 所以证书是有效的。 SSL实验室的评级是A. 从我的开发机器到其他SSLencryption站点的任何其他curl请求的工作。 我的根证书是最新的。 为了validation,我运行了update-ca-certificates 。 我甚至将http://curl.haxx.se/ca/cacert.pem下载到/ etc / ssl / certs并运行c_rehash 。 还是一样的错误。 有没有办法debuggingvalidation过程,看看哪些本地发行者证书curl(或openssl)正在寻找,但没有find,即文件名? UPDATE curl -vs https://example.com 告诉我(IP +域名匿名) * Hostname was NOT found in DNS cache * Trying 192.0.2.1… […]

Openssl错误19:“GoDaddy”键入的“证书链中的自签名证书”

有人可以帮助我了解如何validation我的SSL证书安装是否正确(或解决问题的原因)? 我在我的Apache服务器上安装了GoDaddy SSL证书。 一些用户仍在报告问题(某些版本的IE浏览器显示“此页面无法显示”,没有进一步解释),openssl说在链中有一个“自签名”的证书。 请注意,这不是一个自签名的证书 。 它由GoDaddy签署。 本文有一个相关的答案,不起作用: https : //stackoverflow.com/a/4106224/1723405 以下是我采取的步骤: 步骤1:生成一个私钥 openssl req -out CSR.csr -new -newkey rsa:2048 -nodes -keyout privateKey.key 第二步:转到GoDaddy并重新粘贴CSR.csr 。 第3步:在Apache中安装crt和bundle文件,然后重新启动。 // In <VirtualHost> SSLEngine on SSLProtocol -ALL +SSLv3 +TLSv1 SSLCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:-LOW:-SSLv2:-EXP SSLVerifyClient none SSLCertificateFile /path/to/allthingsinsurance.net.crt SSLCertificateKeyFile /path/to/privateKey.key SSLCertificateChainFile /path/to/gd_bundle-g2.cr % apachectl restart 步骤4:转到几台机器中的任何一台,但无法使用openssl进行validation。 % openssl s_client -connect allthingsinsurance.net:443 -showcerts […]

在使用TLS时拒收Microsoft的Sendmail邮件

我将以一个声明说,我不是sendmail的专家。 我很less使用它,但在这种情况下,我必须为我的客户。 背景: 我的一个客户端有一个运行Debian 7.7,Sendmail 8.14.4和OpenSSL 1.0.1e的邮件服务器。 它会生成电子邮件(像帐户重置的东西),并将其发送给客户。 我会称之为“服务器A”。 从服务器A发送到域* .outlook.com(奇怪不包括@ outlook.com消息,由hotmail处理)的任何邮件服务器的消息由于TLS握手失败而被推迟。 这只是Microsoft所拥有的服务器的问题; 一切正在工作。 日志中的错误看起来像这样: sendmail[22213]: ruleset=tls_server, arg1=SOFTWARE, relay=mail.protection.outlook.com, reject=403 4.7.0 TLS handshake sendmail[22213]: s2L9EakQ022098: to=<[email protected]>, delay=00:00:55, xdelay=00:00:31, mailer=esmtp, pri=181653, relay=mail.protection.outlook.com. [145.123.225.25], dsn=4.0.0, stat=Deferred 注意:这些日志是由于我的客户不希望复制和粘贴的东西less,他们意外泄漏敏感数据。 信息在那里,我只是手工input,所以忽略错别字等。 这就是我能从日志中得到的所有东西,即使是15日志(除此之外,系统开始变成磁盘限制)。 问题: 握手的tcpdump显示服务器A连接到outlook.com,EHLO成功,服务器A启动了STARTTLS,outlook.com随后响应其证书链。 所有这一切正常。 然后,服务器A收到Microsoft证书链后,服务器A发送自己的客户端证书。 Outlook.com然后丢弃连接。 我们的客户证书是我们用于组织内validation的自签名证书,不应该出去outlook.com。 从我有限的知识,我最好的猜测是,outlook.com正在请求客户端证书进行validation(或至lesssendmail认为其请求证书),服务器A上的sendmail是强制性的。 然后Outlook.com将删除连接,因为证书是无效的或不是它所期望的。 两个问题: 为什么sendmail将客户端证书作为STARTTLS的一部分发送给outlook.com? 有没有办法阻止sendmail向我们域外的服务器发送客户端证书,即使服务器请求它? 从我做的实验中,如果我简单地忽略证书请求并发送消息,outlook.com将接受消息。 在任何人build议之前,我已经创build了一个访问映射,防止TLS与一些与Microsoft相关的IP地址连接。 这不是一个好的永久性解决scheme,因为我更喜欢使用TLS,并且IP地址列表必须手动维护,这是一个麻烦。

从有效的通配符证书生成子域名证书

为了certificateSSL证书和可链接的密钥的性质,我可以根据为通配符子域颁发的主域证书和密钥生成子域的证书吗? 这里的做法是,我必须为一个子域设置一个新的完全不同的远程(物理)服务器,并且要将主证书和密钥的风险最小化,以防万一。 我可以使用openssl实用工具来提供我的主域名,通配符证书和密钥吗?还是应该再次由CA来辞职? 如果可以,怎么样? 谢谢

openssl客户端身份validation错误:tlsv1警报未知ca:… SSL警报号码48

我已经使用openssl生成了一个证书,并将其放置在客户端的机器上,但是当我尝试使用该证书连接到我的服务器时,我在服务器的主题行中提到了错误。 这是我所做的。 1)我使用openssl进行testing连接,看看可接受的客户端证书CA名称是为我的服务器,我从我的客户端机器发出此命令到我的服务器: openssl s_client -connect myupload.mysite.net:443/cgi-bin/posupload.cgi -prexit 我回来的部分是: Acceptable client certificate CA names /C=US/ST=Colorado/L=England/O=Inteliware/OU=Denver Office/CN=Tim Drake/[email protected] /C=US/ST=Colorado/O=Inteliware/OU=Denver Office/CN=myupload.mysite.net/[email protected] 2)以下是服务器上关于SSL客户端authentication的apacheconfiguration文件中的内容: SSLCACertificatePath /etc/apache2/certs SSLVerifyClient require SSLVerifyDepth 10 3)我使用mypos.pem和mypos.key生成了一个名为“client.pem”的自签名客户端证书,所以当我运行这个命令时: openssl x509 -in client.pem -noout -issuer -subject -serial 这里是返回的内容: issuer= /C=US/ST=Colorado/O=Inteliware/OU=Denver Office/CN=myupload.mysite.net/[email protected] subject= /C=US/ST=Colorado/O=Inteliware/OU=Denver Office/CN=mlR::mlR/[email protected] serial=0E (请注意,mypos.pem位于/ etc / apache2 / certs /中,而mypos.key保存在/ etc / apache2 / certs […]