标签: openssl

从 .pfx 中提取证书链

我有一个从 Windows Server 2008 导出的 .pfx 文件。它包含私钥和证书链。

使用openssl我已经能够提取私钥和公共证书,但我还需要完整的证书颁发机构链。这部分如何提取呢?

目的是将证书移动到AWS EC2负载均衡器。到目前为止,我能够做到这一点的唯一方法是使用 Chrome 导出链证书。

windows-server-2008 openssl ssl-certificate amazon-ec2

6
推荐指数
1
解决办法
3万
查看次数

Haproxy SSL 握手失败

我的一个特定客户端出现问题,该客户端访问了我的 haproxy 负载均衡器。haproxy 日志中的错误消息:]

incoming_ssl/1: SSL handshake failure
Run Code Online (Sandbox Code Playgroud)

有问题的客户端似乎是一些 Apache Java 客户端或 ActiveMq 服务器 - 无论哪种方式,它都是我们对其进行零控制的远程服务器。

使用 ssldump,我看到这些行:

11 5  0.4152 (0.1649)  C>S  Alert
    level           fatal
    value           certificate_unknown
11    0.4152 (0.0000)  C>S  TCP FIN
Run Code Online (Sandbox Code Playgroud)

使用curl /浏览器一切看起来都很好,我已经做了一些ssl检查,没有报告此类问题。

我已经从我的 haproxy 配置文件中删除了尽可能多的内容来诊断问题。我什至测试过直接访问后端(NodeJS)服务器,效果很好 - 客户端可以连接。这确实是 haproxy,我只是不知道如何修复它。

我的基本 haproxy conf 文件如下所示:

frontend incoming_ssl
  bind *:443 ssl crt /etc/haproxy/cert.key ca-file /etc/haproxy/cert.pem ciphers ECDHE-RSA-AES256-SHA:RC4-SHA:RC4:HIGH:!MD5:!aNULL:!EDH:!AESGCM
  acl flume hdr_dom(host) -i dom.ain.com
  use_backend flume if flume

backend flume :80
  server flume 10.40.14.1:8000 weight 1 maxconn 1000 check inter 2000
Run Code Online (Sandbox Code Playgroud)

也尝试过使用 …

godaddy openssl haproxy

6
推荐指数
1
解决办法
4万
查看次数

与 Dovecot 的 IMAP 连接不断失败(超时)

* TLDR;如果您遇到连接问题,不仅要确保已将所需的规则添加到防火墙中,还要确保 ( $ iptables -L -v) 规则的顺序正确!*


现在已经几天了,我不明白为什么我的 IMAP 设置(在端口 993 上)拒绝工作(使用 Dovecot,版本 2.2.22)。连接不成功,由于某种原因我看不到。

对与 openssl 的连接进行故障排除:在端口 993 上连接不起作用:

$ openssl s_client -connect my-domain.com:993
Run Code Online (Sandbox Code Playgroud)

返回:

connect: Connection timed out
connect:errno=110
Run Code Online (Sandbox Code Playgroud)

但是使用的端口(993)似乎是开放的:

$ ufw status
Run Code Online (Sandbox Code Playgroud)

返回:

Status: active

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       Anywhere                  
80/tcp                     ALLOW       Anywhere                  
443/tcp                    ALLOW       Anywhere                  
25/tcp                     ALLOW       Anywhere                  
587/tcp                    ALLOW       Anywhere                  
993/tcp                    ALLOW       Anywhere                  
143/tcp                    ALLOW       Anywhere                  
465/tcp                    ALLOW       Anywhere                  
110/tcp                    ALLOW       Anywhere                  
995/tcp                    ALLOW       Anywhere                  
22/tcp (v6)                ALLOW       Anywhere …
Run Code Online (Sandbox Code Playgroud)

ssl firewall imap openssl nmap

6
推荐指数
1
解决办法
5748
查看次数

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

我正在运行在 Ubuntu 14.04 LTS 服务器上实现的 Web 服务。我正在调试客户端使用和服务器使用TLSv1 一段时间后连接中断。我自己无法访问客户端,只能访问服务器和路由器。当我代替服务器运行时,我会在客户端连接时看到消息。重新协商不一定与连接问题有任何关系,但我正在尝试理解重新协商。到目前为止,我还无法找到以下问题的答案:openssl version 0.9.7mopenssl 1.0.1fopenssl s_serversecure renegotiation not supported

  1. 重新谈判的典型触发因素是什么?如果不支持安全协商,是否会导致不安全?
  2. 重新协商是由客户端或服务器代码发起的还是 openssl 可以在某个点发起它?
  3. 有没有办法强制与之重新谈判openssl s_server和/或openssl s_client进行试验?

openssl

6
推荐指数
1
解决办法
2万
查看次数

远程监控 RDP 证书

我们在 CentOS 6 服务器上使用 OpenSSL 来监控服务器上的证书以获取 RDP。

为此,我们使用:

openssl s_client -connect SERVER01:3389 -prexit

这一直完美无缺,直到 4 天前,它突然停止显示证书已被使用,而是显示单个服务器的以下内容:

CONNECTED(00000003)
140439032170136:error:140790E5:SSL routines:ssl23_write:ssl handshake failure:s23_lib.c:177:
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 0 bytes and written 305 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : 0000
    Session-ID:
    Session-ID-ctx:
    Master-Key:
    Key-Arg   : None
    PSK identity: None
    PSK identity …
Run Code Online (Sandbox Code Playgroud)

rdp openssl ssl-certificate

6
推荐指数
0
解决办法
1742
查看次数

强制 Dovecot 2.3.4.1 使用 TLSv1.2

自从新的 Debian Buster 更新以来,我在 TLSv1.3 方面遇到了一些问题。

问题:我的 iOS 邮件客户端无法连接到我的邮件服务器 (12.2),并且我现在不想升级,因此我尝试找到一种使用 dovecot 禁用 TLSv1.3 的方法。

当前版本是:OpenSSL 1.1.1c 和 Dovecot 2.3.4.1

在 Dovecot 2.3 中,SSL 设置从 ssl_protocols 更改为 ssl_min_protocol。

# Minimum SSL protocol version to use. Potentially recognized values are SSLv3,
# TLSv1, TLSv1.1, and TLSv1.2, depending on the OpenSSL version used.
Run Code Online (Sandbox Code Playgroud)

但我想强制 Dovecot 使用 TLSv1.2,而不是使用最低 SSL 协议,因为 Dovecot 会先尝试可用的最高 SSL 协议 (TLSv1.3)。如果我设置 TLSv1.3,它将不会使用 TLSv1.2。

那么,有人知道如何强制 Dovecot 2.3.4.1 使用 TLSv1.2 吗?

email ssl ios dovecot openssl

6
推荐指数
1
解决办法
1万
查看次数

pkcs12:导入密码和PEM密码

为什么openssl要求我输入两个密码才能获得-info密钥pkcs12

\n\n

它要求Import PasswordPEM Pass Phrase

\n\n
\xe2\x9e\x9c  front git:(master) \xe2\x9c\x97 openssl pkcs12 -info -in front.p12  \nEnter Import Password:\nMAC: sha1, Iteration 102400\n...\nKey Attributes: <No Attributes>\nEnter PEM pass phrase:\n
Run Code Online (Sandbox Code Playgroud)\n\n

每一个是做什么用的?

\n

openssl

6
推荐指数
1
解决办法
2万
查看次数

仅具有 TLS1.3 密码套件的 Nginx

我正在尝试将 Nginx 配置为仅使用 TLS1.3 和 2 个密码:TLS-AES-256-GCM-SHA384:TLS-AES-128-GCM-SHA256。

所以,我尝试了这个配置:

ssl_protocols TLSv1.3;
ssl_ciphers TLS-AES-256-GCM-SHA384:TLS-AES-128-GCM-SHA256;
Run Code Online (Sandbox Code Playgroud)

但是nginx -s reload出现错误

nginx: [emerg] SSL_CTX_set_cipher_list("TLS-AES-256-GCM-SHA384:TLS-AES-128-GCM-SHA256") failed (SSL: error:1410D0B9:SSL routines:SSL_CTX_set_cipher_list:no cipher match)", "operationName": "Default", "category": "Default"}
Run Code Online (Sandbox Code Playgroud)

看起来我需要附加至少一个非 TLS1.3 密码才能使配置正常工作。我尝试了各种这样的组合,它们起作用了。其中之一是:

TLS-AES-256-GCM-SHA384:TLS-AES-128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384
Run Code Online (Sandbox Code Playgroud)

为什么会这样呢?我认为发生这种情况是因为 OpenSSL 本身不接受原始的密码套件字符串。我正在使用 OpenSSL-1.1.1g。

root@2ed6cae6e062:/azure/appgw# openssl ciphers -v TLS-AES-256-GCM-SHA384:TLS-AES-128-GCM-SHA256
Error in cipher list
140686067873536:error:1410D0B9:SSL routines:SSL_CTX_set_cipher_list:no cipher match:ssl/ssl_lib.c:2558:
Run Code Online (Sandbox Code Playgroud)

我遇到了一些有用的链接,但无法弄清楚如何实现我想要的 -仅使用 TLS1.3 ciphersuites

https://forum.nginx.org/read.php?2,284909,284914#msg-284914
https://trac.nginx.org/nginx/ticket/1529
https://wiki.openssl.org/index.html php/TLS1.3#密码套件

nginx openssl

6
推荐指数
1
解决办法
1万
查看次数

SSL 握手时 SSL_do_handshake() 失败(SSL:错误:141CF06C:SSL 例程:tls_parse_ctos_key_share:错误的密钥共享),客户端:

几个月前,我开始收到数十名用户的投诉,称在连接到我的网站时出现错误。当我查看 nginx 的 error.log 时,我看到每日 SSL 错误:

我不知道什么会导致这个问题,因为 99% 的用户都通过了,而且我自己似乎无法复制它。一位用户表示,改用 VPN 解决了​​他的问题。stackoverflow 上的其他帖子表明,来自同一 IP 的恶意请求会发生这种情况,但这里的情况并非如此。

有谁知道解决这个问题吗?

(我已经几个月没有对此服务器/配置进行任何更改了。)

网络服务器在 Ubuntu 20.10 上运行

Nginx 错误.log

2022/04/16 04:40:19 [crit] 809329#809329: *13542487 SSL_do_handshake() failed (SSL: error:141CF06C:SSL routines:tls_parse_ctos_key_share:bad key share) while SSL handshaking, client: 138.197.194.139, server: 0.0.0.0:443
2022/04/16 04:40:32 [crit] 809329#809329: *13542919 SSL_do_handshake() failed (SSL: error:141CF06C:SSL routines:tls_parse_ctos_key_share:bad key share) while SSL handshaking, client: 38.132.118.76, server: 0.0.0.0:443
2022/04/16 04:58:54 [crit] 809329#809329: *13564742 SSL_do_handshake() failed (SSL: error:141CF06C:SSL routines:tls_parse_ctos_key_share:bad key share) while SSL handshaking, client: 165.227.227.95, server: 0.0.0.0:443 …
Run Code Online (Sandbox Code Playgroud)

nginx openssl lets-encrypt

6
推荐指数
0
解决办法
1万
查看次数

OpenSSL x509 目的标志“任何目的”这是什么?

使用以下命令查看证书的详细信息:

openssl x509 -noout -text -purpose -in mycert.pem
Run Code Online (Sandbox Code Playgroud)

我找到了一堆目的标志(我发现这些标志是由附加到证书的各种扩展设置的)。

这些目的标志之一是“任何目的”。我似乎找不到关于这个标志的任何文档以及为什么或为什么不设置它。

你们中有人知道我在哪里可以找到有关此目的的更多信息及其含义吗?

谢谢,

certificate openssl x509 flags

5
推荐指数
2
解决办法
2万
查看次数