标签: gnutls

为什么 openssl s_client 会针对不匹配的 CAfile 验证证书?

我试图产生这样的证书验证错误openssl s_client

$ openssl s_client -crlf -verify 9 \
  -CAfile /etc/ssl/certs/TURKTRUST_Certificate_Services_Provider_Root_1.pem \
  -starttls smtp -host mx-ha03.web.de -port 25
Run Code Online (Sandbox Code Playgroud)

web.de服务器的证书是德国电信CA认证的,不是TURKTRUST,所以上面的命令应该会失败吧?

但它报告:

    Verify return code: 0 (ok)
Run Code Online (Sandbox Code Playgroud)

为什么?

我的意思是模拟 gnutls-cli 命令按预期失败:

$ { echo -e 'ehlo example.org\nstarttls' ; sleep 1 } | \
   gnutls-cli --starttls --crlf \
   --x509cafile /etc/ssl/certs/TURKTRUST_Certificate_Services_Provider_Root_1.pem \
   --port 25 mx-ha03.web.de
[..]
*** Verifying server certificate failed...
Run Code Online (Sandbox Code Playgroud)

进行交叉检查,即使用--x509cafile /etc/ssl/certs/ca-certificates.crtgnutls-cli代替我得到:

[..]
- The hostname in the certificate matches 'mx-ha03.web.de'.
- Peer's certificate is trusted
Run Code Online (Sandbox Code Playgroud)

(这也是预期的)

Openssl s_client …

openssl certificates gnutls

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

VSFTPD FileZilla GnuTLS 错误 -15(收到了意外的 TLS 数据包)

我同时设置了两个新的 CentOS 7 机器,所以配置应该是相同的,只是 IP 地址和主机名不同。

我安装了 VSFTPD 并配置了被动端口。一个盒子连接正常,没有问题,但是第二个盒子不断向我抛出这个错误:

GnuTLS error -15: An unexpected TLS packet was received.
Run Code Online (Sandbox Code Playgroud)

这是调试 FileZilla 跟踪:

Status: Connecting to 192.168.20.68:21...
Status: Connection established, waiting for welcome message...
Trace:  CFtpControlSocket::OnReceive()
Response:   220 (vsFTPd 3.0.2)
Trace:  CFtpControlSocket::SendNextCommand()
Command:    AUTH TLS
Trace:  CFtpControlSocket::OnReceive()
Response:   234 Proceed with negotiation.
Status: Initializing TLS...
Trace:  CTlsSocket::Handshake()
Trace:  CTlsSocket::ContinueHandshake()
Trace:  CTlsSocket::OnSend()
Trace:  CTlsSocket::OnRead()
Trace:  CTlsSocket::ContinueHandshake()
Trace:  CTlsSocket::OnRead()
Trace:  CTlsSocket::ContinueHandshake()
Trace:  CTlsSocket::OnRead()
Trace:  CTlsSocket::ContinueHandshake()
Trace:  TLS Handshake successful
Trace:  Protocol: TLS1.2, Key exchange: …
Run Code Online (Sandbox Code Playgroud)

ftp centos vsftpd filezilla gnutls

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

Ubuntu - lftp 将无法连接到 ftps 站点(致命错误:gnutls_handshake:收到了意外的 TLS 数据包。)

我有一个特定的 ftps 站点,我无法使用 lftp 连接到该站点。

当我尝试连接时,出现错误:

Fatal error: gnutls_handshake: An unexpected TLS packet was received
Run Code Online (Sandbox Code Playgroud)

当我使用 gnutls-cli 连接时,我找到了正确的设置来协商并实际发出 USER 命令。我要的是指向 gnutls 部分正确 lftp 配置的任何指针,以便它可以正确进行身份验证。

更新:我看到的情况是,在使用 gnutls-cli 时,它会选择要使用的正确 MAC 和密码:

|<4>| HSK[0x24073f0]: Selected cipher suite: RSA_3DES_EDE_CBC_SHA1
Run Code Online (Sandbox Code Playgroud)

与从 lftp 调用时不同的是:

GNUTLS: ENC[0x1918cd0]: cipher: NULL, MAC: MAC-NULL, Epoch: 0
Run Code Online (Sandbox Code Playgroud)

以下是我从 lftp 和 gnutls-cli 的配置和调试输出:

lftp 配置

lftp
set ssl:priority NORMAL:+VERS-TLS1.0:+VERS-TLS1.1:+VERS-TLS1.2
set ftps:initial-prot P
set ftp:ssl-allow yes
set ftp:ssl-force yes
set ftp:ssl-protect-list yes
set ftp:ssl-protect-data yes
set ftp:ssl-protect-fxp yes
set ssl:verify-certificate no
debug …
Run Code Online (Sandbox Code Playgroud)

ubuntu ssl lftp gnutls

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

aria2c 必须使用未知的 TLS 协议连接到另一端,为什么?

当我跑

aria2c https://www.example.com
Run Code Online (Sandbox Code Playgroud)

我得到

02/24 15:33:38 [WARN] aria2c had to connect to the other side using an unknown TLS protocol. The integrity and confidentiality of the connection might be compromised.
Run Code Online (Sandbox Code Playgroud)

为什么是这样?请注意,这不是特定于www.example.com; 它发生在许多(如果不是所有)主机上。

作为参考,这是(已编辑的)日志:

[INFO] [Context.cc:182] aria2 1.34.0
[INFO] [Context.cc:183] gcc 8.2.1 20181127
  built by  x86_64-pc-linux-gnu
  on        Feb  8 2019 09:32:06
[INFO] [Context.cc:185] zlib/1.2.11 libxml2/2.9.9 sqlite3/3.26.0 GnuTLS/3.6.6 nettle GMP/6.1.2 c-ares/1.15.0 libssh2/1.8.0
[INFO] [Context.cc:186] Logging started.
[DEBUG] [Context.cc:216] Not setting rlimit NO_FILE: 1024 >= 1024
[NOTICE] [Context.cc:311] Downloading 1 item(s) …
Run Code Online (Sandbox Code Playgroud)

networking ssl aria2 gnutls

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

如何在 exim 中禁用旧的 TLS 版本?

我正在运行Exim MTA,它只接收来自我控制下的其他几个系统的电子邮件。所有这些系统都愉快地与我的 MTA 协商 TLSv1.2/TLSv1.3。我想禁用对 TLSv1.0 和 TLSv1.1 的支持,但我找不到有关如何执行此操作的说明。

所有软件均从官方 Debian 10 存储库(Exim 4.92、GnuTLS 3.6.6)安装。

exim gnutls

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

mutt 发送邮件时出错:gnutls_handshake:收到意外的 TLS 数据包

我不断收到一个错误,如在 neomutt 中发送电子邮件的标题所示,这是我在 muttrc 中放入的内容:

set from = "myemail@domain.ca"
set realname = "my name"

set smtp_url = "smtps://myemail@domain.ca@smtp-mail.outlook.com:587"
set smtp_pass = "pass"
set imap_pass = "pass"

set ssl_starttls = "yes"

set folder = "imaps://myemail@domain@outlook.office365.com:993"

set header_cache = "~/.mutt/cache/headers"
set message_chachedir = "~/.mutt/cache/bodies"
set certificate_file = "~/.mutt/certificates"

set editor = "vim"
Run Code Online (Sandbox Code Playgroud)

到目前为止,我已经尝试将 smtp url 从 smtps 更改为 smtp,但这只会给我错误“SASL 身份验证失败”。

smtp email mutt ssl gnutls

5
推荐指数
1
解决办法
4707
查看次数

标签 统计

gnutls ×6

ssl ×3

aria2 ×1

centos ×1

certificates ×1

email ×1

exim ×1

filezilla ×1

ftp ×1

lftp ×1

mutt ×1

networking ×1

openssl ×1

smtp ×1

ubuntu ×1

vsftpd ×1