1

我刚刚设置了一个 openvpn 服务器版本 2.4.4,它在 Windows 和 Android 中与 Openvpn 客户端配合良好,但在 Mac OS 中出错。

Tue Dec 10 10:50:31 2019 OMI Connecting to /Library/Application Support/OpenVPN/sock/ovpn-KTMpKfLsCR5a.sock [unix]
Tue Dec 10 10:50:35 2019 CLIENT_EXCEPTION : connect error: Missing External PKI alias [FATAL-ERR]
Tue Dec 10 10:50:35 2019 >FATAL:CLIENT_EXCEPTION: connect error: Missing External PKI alias

我正在 MacOS 版本 10.4.4 和 Openvpn 客户端 2.7.1.100 中进行测试。下面是client.ovpn

client
dev tun
proto tcp-client
remote vpn01 9443
resolv-retry infinite
cipher AES-256-CBC
redirect-gateway

# Keys
# Identity
key-direction 1
remote-cert-tls server
auth-user-pass
auth-nocache

# Security
nobind
persist-key
persist-tun
comp-lzo
verb 3

# Proxy ?
# http-proxy cache.univ.fr 3128
<ca>
-----BEGIN CERTIFICATE-----
MIIDXTCCAkWgAwIBAgIUdu/viXgfwhA+wu0K49vvnXaCyFkwDQYJKoZIhvcNAQEL
BQAwHDEaMBgGA1UEAwwRdnBuMDEuaG9tZWNjYS5jb20wHhcNMTkxMjA5MTA1NTQ5

任何想法或可能导致此问题的原因?

4

3 回答 3

1

我在 MacOS 上使用 OpenVPN Connect 客户端时遇到了同样的问题——我切换到 TunnelBlick 客户端软件,并使用相同的 .ovpn 文件,它运行良好。虽然无法找到任何有关 OpenVPN Connect 为何不起作用的线索。

于 2020-02-26T00:50:18.863 回答
0

外部 PKI 意味着 OpenVPN Connect 客户端与其配置“配置文件”相比使用“外部证书”,该 .ovpn 文件也可以具有内联 PEM 证书。据我了解,这个外部 PKI 可以是 Windows crtmgr 或 macOS 钥匙串证书存储(或移动设备中的证书存储)中的证书。在 Windows 的情况下,它很容易并且有效。macOS 是另一回事。

目前(截至 2020-04)Catalina 是最新的 macOS 版本,它只有 CryptoTokenKit (CTK) 框架,Tokend 已经消失。当使用硬件安全模块 (HSM)、智能卡、USB 令牌时,它们不再像使用 Tokend 那样出现在 Keychain 中。不明白为什么。如果这个“外部 PKI”真的是从 Keychain 中查找该证书,那么这就是一个问题。

https://openvpn.net/vpn-server-resources/external-public-key-infrastructure-pki/

On the client, the server-locked profile can only be used to make a VPN 
tunnel connection if a suitable client certificate/key pair has already
been installed into the host OS Keychain or certificate/key store. Some 
hardware devices or tokens contain a certificate inside that is registered 
with the certificate store with additional software when the token 
device/card is plugged in.

从页面的其余部分和我在其他地方读到的内容,我猜这个丢失的别名是将钥匙串内的证书映射到给定连接尝试的名称。你不确定。

据我了解,真正的问题是 Connect 客户端正在从 Keychain 中查找证书,而 Apple 切换到 CTK 时破坏了它。即使那些硬件令牌在系统中工作,它们也不会出现在 Keychain 中。我正在寻找解决方案来撤消此更改并偶然发现 keychain-pkcs11 说:

https://github.com/kenh/keychain-pkcs11/blob/master/man/keychain-pkcs11.man

will provide two virtual PKCS#11 slots. The first slot will provide all
identities that are available from connected SmartCards.  The second slot
will provide an interface to certificates stored in the operating system
Keychain.

这不正是我想要的。它在 pkcs#11 插件之外提供这些钥匙串证书,但不会将 HSM 证书填充到钥匙串。

一旦您完全确定我是否正确理解了实际​​问题的图片,就很难解决问题,更不用说找出解决方案了。:)

于 2020-04-22T14:08:15.473 回答
0

您应该尝试编辑您的 *.ovpn 配置文件:

在 openvpn 客户端中删除您的配置文件,然后编辑您从服务器导出的 .ovpn 文件并在之前添加以下行

client-cert-not-required

我从https://forum.opnsense.org/index.php?topic=14687.0得到这个答案

此错误之前是:

打开 VPN 错误

配置文件修改修复了这个错误。

于 2020-11-09T12:06:35.837 回答