You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

  1. 安装OpenVPN Connect客户端(App Store或者OpenVPN官网都能下载)
  2. 打开客户端,点「File」→「Import」,选择你刚生成的azure-ad-vpn.ovpn文件
  3. 点击连接,会弹出输入框,填写你的Azure AD用户名和密码
  4. 如果账号开启了MFA,会自动弹出验证窗口(比如Microsoft Authenticator),完成验证就能成功连接了

踩过的坑提醒

  • 要是连接时提示证书验证失败:检查ca字段的路径是否正确,或者确认根证书已经在钥匙串里设为「始终信任」
  • 要是Azure AD认证失败:先确认你的账号有VPN连接权限,再核对租户ID和客户端ID有没有抄错
  • 要是DNS解析有问题:把push "dhcp-option DNS..."换成你的VNet里的自定义DNS服务器地址

内容的提问来源于stack exchange,提问作者danny26b

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 16:08:00