Mac端基于Azure AD的Azure VNet点到站点OpenVPN配置求助
我之前帮同事配置过一模一样的场景,MacBook用Azure AD用户名密码连接Azure点到站点OpenVPN,正好可以给你一步步的解决方案:
配置MacBook上的Azure AD认证OpenVPN连接
1. 先解决根证书的格式问题
你拿到的VpnServerRoot.cer是DER格式的,Mac钥匙串和OpenVPN更认PEM格式,所以先转格式:
打开终端,执行这条命令(记得替换成你的证书实际路径):
openssl x509 -inform der -in /path/to/VpnServerRoot.cer -out /path/to/VpnServerRoot.pem
转换完成后,你再导入钥匙串就没问题了——右键PEM文件选「打开方式」→「钥匙串访问」,导入后找到证书,右键「显示简介」,在「信任」标签把「使用此证书时」设为「始终信任」。
2. 从Azure的配置文件里挖关键信息
打开azurevpnconfig.xml,找到这几个必填项:
<VpnServer>:你的VPN服务器地址(比如xxx.vpn.azure.com)<Tenant>:Azure AD租户的GUID<AadAudience>:Azure VPN的客户端ID(一般是41b23e61-6c1e-4545-b367-cd054e0ed4b4,以xml里的实际值为准)
3. 生成适配的.ovpn配置文件
把下面的模板复制到文本编辑器,替换掉{}里的内容,保存成azure-ad-vpn.ovpn:
client dev tun proto udp remote {你的VPN服务器地址} 1194 resolv-retry infinite nobind persist-key persist-tun remote-cert-tls server cipher AES-256-GCM auth SHA256 verb 3 # 引用转换后的根证书(确保和.ovpn在同一目录,或者写绝对路径) ca VpnServerRoot.pem # 开启用户名密码认证 auth-user-pass auth-retry interact auth-nocache script-security 2 # Azure AD专属配置 setenv AAD_TENANT_ID {你的Azure AD租户ID} setenv AAD_CLIENT_ID {你的Azure AD客户端ID} setenv opt block-outside-dns # Azure默认DNS,可替换成你的VNet DNS服务器 push "dhcp-option DNS 168.63.129.16"
4. 在Mac上连接VPN
- 安装OpenVPN Connect客户端(App Store或者OpenVPN官网都能下载)
- 打开客户端,点「File」→「Import」,选择你刚生成的
azure-ad-vpn.ovpn文件 - 点击连接,会弹出输入框,填写你的Azure AD用户名和密码
- 如果账号开启了MFA,会自动弹出验证窗口(比如Microsoft Authenticator),完成验证就能成功连接了
踩过的坑提醒
- 要是连接时提示证书验证失败:检查
ca字段的路径是否正确,或者确认根证书已经在钥匙串里设为「始终信任」 - 要是Azure AD认证失败:先确认你的账号有VPN连接权限,再核对租户ID和客户端ID有没有抄错
- 要是DNS解析有问题:把
push "dhcp-option DNS..."换成你的VNet里的自定义DNS服务器地址
内容的提问来源于stack exchange,提问作者danny26b
相关产品推荐
相关产品推荐

