我正在运行 IMAPS 服务,并且用户使用 X.509 证书进行身份验证。使用 Thunderbird 可以正常工作。但是如何使用 openssl 手动连接到 IMAPS 服务?我openssl s_client
在 Thunderbird 中使用了相同的证书,但我没有通过身份验证。
$ openssl s_client -connect $myimapsserver:993 -key my.key -cert my.crt -quiet
depth=2 C = US, O = Internet Security Research Group, CN = ISRG Root X1
verify return:1
depth=1 C = US, O = Let's Encrypt, CN = R3
verify return:1
depth=0 CN = $myimapsserver
verify return:1
* OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE AUTH=PLAIN ACL ACL2=UNION AUTH=EXTERNAL ENABLE UTF8=ACCEPT] Courier-IMAP ready. Copyright 1998-2019 Double Precision, Inc. See COPYING for distribution information.
答案1
可以使用以下 IMAP 命令进行身份验证
1 AUTHENTICATE EXTERNAL bWljaGE=
然后 IMAP 服务器响应
1 OK LOGIN Ok.
该参数是 base64 编码的用户名,该用户名也必须在使用的客户端 X.509 证书中。