虽然这个过程应该很简单,但我的路由器却没有给我带来任何帮助。我创建了一个 OpenVPN 配置文件、用户名和密码,但就是无法连接。
在 Android 上,OpenVPN 客户端只会显示“身份验证失败”。在我的 Mac 上,使用“Tunnelblick”,我可以获得更多信息。日志显示:
2015-10-18 12:24:14 *Tunnelblick:已与 OpenVPN 建立通信
2015-10-18 12:24:19 注意:当前 --script-security 设置可能允许此配置调用用户定义的脚本
2015-10-18 12:24:19 UDPv4 链接本地:[undef]
2015-10-18 12:24:19 UDPv4 链接远程:[AF_INET]剪掉:1194
2015-10-18 12:24:19 警告:此配置可能会在内存中缓存密码 - 使用 auth-nocache 选项可以防止这种情况
2015-10-18 12:24:19 TLS_ERROR:BIO 读取 tls_read_plaintext 错误:错误:14082174:SSL 例程:SSL3_CHECK_CERT_AND_ALGORITHM:dh 密钥太小
2015-10-18 12:24:19 TLS 错误:TLS 对象 -> 传入纯文本读取错误
2015-10-18 12:24:19 TLS 错误:TLS 握手失败
2015-10-18 12:24:19 SIGUSR1[soft,tls-error] 已接收,进程正在重新启动
一遍又一遍地。
我怀疑dh 键太小,但我不知道该怎么办?
眼镜:
- 路由器:华硕RT-N66U
- 固件版本:3.0.0.4.376_3861
- OpenVPN 服务器已开启
- 尝试了一个简单的密码,所以我知道它是正确的
.ovpn
从路由器下载文件
- 客户端:Android 版 openvpn 客户端、Mac 版 tunnelblick
- 两个客户端都表示身份验证不起作用
- 尝试通过 4g 连接
答案1
我找到了答案本论坛
简短版本如下:
- 创建更长的 DH 密钥: openssl dhparam -out dh2048.pem 2048
- 更改路由器中的设置以使用它。
较长的版本处理华硕的固件有点令人难过。只需创建密钥,然后打开设置:
VPN -> openVPN -> 高级 -> 内容修改(“TLS”旁边的句子)
现在您会看到各种具有 HTML 编码的键。如果您现在按“保存”(不做任何更改),那么您的设置就会被破坏。太好了。(见下文)。
你需要:
- 复制编码的密钥
- 解码它们(例如使用在线 HTML 解码器。我使用了这个
- 将它们粘贴回去(如果你保存的话,现在实际上没有任何变化)
- 将新密钥(使用 openssl 创建的密钥)粘贴到 DH 框中
- 节省
- 申请
现在,如果您确实保存了编码密钥,或者您一直在胡乱操作,您可以删除所有密钥(只需清空框)并保存/应用。它将触发密钥的再生。