openssl是否理解链路本地IPv6地址?

openssl是否理解链路本地IPv6地址?,openssl,ipv6,link-local,Openssl,Ipv6,Link Local,我无法理解此命令不起作用的原因: openssl s_client -connect [fe80::xxxx:xxxx:xxxx:xxxx]:yyyy 注意:我已将上面的链接本地地址与x混淆,但我有一些有效的链接本地ipv6地址。 yyy是端口号 我得到一个错误: 1995535248:error:02002016:system library:connect:Invalid argument:../crypto/bio/b_sock2.c:108: 1995535248:error:2008

我无法理解此命令不起作用的原因:

openssl s_client -connect [fe80::xxxx:xxxx:xxxx:xxxx]:yyyy
注意:我已将上面的链接本地地址与
x
混淆,但我有一些有效的链接本地ipv6地址。
yyy
是端口号

我得到一个错误:

1995535248:error:02002016:system library:connect:Invalid argument:../crypto/bio/b_sock2.c:108:
1995535248:error:2008A067:BIO routines:BIO_connect:connect error:../crypto/bio/b_sock2.c:109:
connect:errno=22
我也尝试过使用单引号/双引号,但结果是相同的错误:

openssl s_client -connect '[fe80::xxxx:xxxx:xxxx:xxxx]:yyyy'
我使用的是OpenSSL 1.1.0f版本,它应该支持IPv6


使用IPv4地址,它可以工作。

IPv6链接本地地址需要作用域ID,但您似乎没有。因此,您的地址无效,您收到的错误,
无效参数
,实际上就是问题所在

要修复它,请添加正确的作用域ID,即您要连接到的接口。例如:

# openssl s_client -connect "[fe80::e1f5:ba3f:9ae5:4fe9%wlp5s0]:443"
CONNECTED(00000003)
depth=0 C = --, ST = SomeState, L = SomeCity, O = SomeOrganization, OU = SomeOrganizationalUnit, CN = localhost.localdomain, emailAddress = root@localhost.localdomain
verify error:num=18:self signed certificate
verify return:1
depth=0 C = --, ST = SomeState, L = SomeCity, O = SomeOrganization, OU = SomeOrganizationalUnit, CN = localhost.localdomain, emailAddress = root@localhost.localdomain
verify return:1

如果不指定链接,则无法使用链接本地地址。我不知道OpenSSL是否会理解这一点,但您上面给出的示例肯定不起作用