您可能会在 Google Cloud Directory Sync (GCDS) 日志文件中看到以下与证书相关的错误:
- sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
- ldap_simple_bind_s() failed: Strong Authentication Required
请按照以下步骤修正这些错误。
本页内容
修正与证书相关的错误
适用于 Microsoft Windows 的步骤更新 vmoption 文件
- 关闭配置管理器。
- 在 GCDS 的安装目录中打开 sync-cmd.vmoptions 和 config-manager.vmoptions 文件。
安装目录通常为 C:\Program Files\Google Cloud Directory Sync。
- 修改文件,在其中添加以下行:
-Djavax.net.ssl.trustStoreProvider=SunMSCAPI
-Djavax.net.ssl.trustStoreType=Windows-ROOT
-Dcom.sun.jndi.ldap.connect.pool.protocol=plain ssl
-Dcom.sun.jndi.ldap.connect.pool.authentication=none simple - 重启“配置管理器”,然后前往 LDAP 配置页面。
- 将连接类型设为 LDAP+SSL。
- 在端口部分,选择一个选项:
- 如果您之前使用 389,请指定 636
- 如果您之前使用 3268,请指定 3269。
- 点击测试连接。
- 如果您遇到以下错误,请执行相应操作:
- 证书错误 - 请确保在运行 GCDS 的计算机上,证书受 Windows 信任。然后,转到“第 2 步:导入服务器证书”(本页下面)。
- 证书吊销检查错误 - 请按照 GCDS 如何检查证书吊销列表中的步骤操作。
- 其他错误(例如网络连接错误)- 请参阅排查常见的 GCDS 问题。
导入服务器证书
您也可以通过以下步骤为使用自签名证书的 LDAP 服务器或 HTTP 代理导入证书。
- 登录域控制器并打开命令提示符。
- 如需导出域控制器证书,请输入以下命令:
certutil -store My DomainController dccert.cer
- 将 dccert.cer 文件复制到安装 GCDS 的服务器。
- 以管理员身份打开命令提示符。
- 如需打开 GCDS Java 运行时环境 (JRE) 安装文件夹,请输入以下命令:
cd "c:\Program Files\Google Cloud Directory Sync\jre"
如果您在 64 位 Windows 系统上运行 32 位版本的 GCDS,请使用 cd "c:\Program Files (x86)\Google Cloud Directory Sync\jre"
- 如需导入域控制器的证书,请输入以下命令:
bin\keytool -keystore lib\security\cacerts -storepass changeit -import -file c:\dccert.cer -alias mydc
如果您需要导入多个证书,请使用其他别名(而不是 mydc)重复执行上述步骤。
- 输入 Yes 以信任相应证书。
- 关闭配置管理器。
- 在 GCDS 的安装目录中,使用文本编辑器打开 sync-cmd.vmoptions 和 config-manager.vmoptions 文件。
- 在每个文件中移除以下行:
-Djavax.net.ssl.trustStoreProvider=SunMSCAPI
-Djavax.net.ssl.trustStoreType=Windows-ROOT当您移除这些行后,GCDS 会使用 lib/security/cacerts 中的证书存储区,而不会使用 Windows 系统中的存储区。
- 打开配置管理器,转到 LDAP 配置页面,然后点击测试连接。
- 如果您仍然看到与证书相关的错误,则可能需要导入您组织的证书授权机构 (CA) 证书,而不是您的网域控制器证书。为此,请重复上述步骤,但改为导出和导入 CA 证书。
您也可以通过以下步骤为使用自签名证书的 LDAP 服务器或 HTTP 代理导入证书。
- 登录域控制器并打开命令提示符。
- 如需查找网域证书,请输入以下命令:
certutil -store My DomainController dccert.cer
- 将 dccert.cer 文件复制到安装 GCDS 的服务器。
- 要打开 GCDS Java 运行时环境 (JRE) 安装文件夹,请打开命令提示符并输入以下命令:
cd ~/GoogleCloudDirSync/jre
- 如需导入域控制器的证书,请输入以下命令:
bin/keytool -keystore lib/security/cacerts -storepass changeit -import -file ~/dccert.cer -alias mydc
如果您需要导入多个证书,请使用其他别名(而不是 mydc)重复执行上述步骤。
- 输入 Yes 以信任相应证书。
- 关闭配置管理器。
- 在 GCDS 的安装目录中,使用文本编辑器打开 sync-cmd.vmoptions 和 config-manager.vmoptions 文件。
安装目录通常为 ~/GoogleCloudDirSync。
- 在每个文件中移除以下行:
-Djavax.net.ssl.trustStoreProvider=SunMSCAPI
-Djavax.net.ssl.trustStoreType=Windows-ROOT当您移除这些行后,GCDS 会使用 lib/security/cacerts 中的证书存储区,而不会使用 Windows 系统中的存储区。
- 打开配置管理器,转到 LDAP 配置页面,然后点击测试连接。
- 如果您仍然看到与证书相关的错误,则可能需要导入您组织的证书授权机构 (CA) 证书,而不是您的网域控制器证书。为此,请重复上述步骤,但改为导出和导入 CA 证书。
GCDS 如何检查证书吊销列表
GCDS 需要在连接 Google API(通过 HTTP)以及 LDAP(通过 SSL)时验证安全套接字层 (SSL) 证书,方法是通过 HTTP 从证书授权机构获取证书吊销列表 (CRL)。有时,这些验证会失败,通常是因为代理或防火墙拦截了相应的 HTTP 请求。
请确保 GCDS 服务器可以通过 HTTP(端口 80)访问以下网址:
- http://crl.pki.goog
- http://crls.pki.goog
有关现有 CRL 的详细信息,请参阅 CRL 检查。如果您将自己的证书用于 LDAP(通过 SSL),可能需要另外访问其他网址。
如果您无法允许 CRL 访问,可以关闭 CRL 检查:
- 在 GCDS 的安装目录中,使用文本编辑器打开 sync-cmd.vmoptions 和 config-manager.vmoptions 文件。
该安装目录通常为:C:\Program Files\Google Cloud Directory Sync (Windows) 或 ~/GoogleCloudDirSync (Linux)。
- 将以下代码行添加到文件中:
-Dcom.sun.net.ssl.checkRevocation=false
-Dcom.sun.security.enableCRLDP=false
切换到 LDAP + SSL 后,同步过程变慢
如果您已切换到 LDAP + SSL,但同步过程变慢,请执行以下操作:
- 关闭配置管理器。
- 在 GCDS 的安装目录中,使用文本编辑器打开 sync-cmd.vmoptions 和 config-manager.vmoptions 文件。
该安装目录通常为 C:\Program Files\Google Cloud Directory Sync (Windows) 或 ~/GoogleCloudDirSync (Linux)。
- 修改文件,在其中添加以下行:
-Dcom.sun.jndi.ldap.connect.pool.protocol=plain ssl
-Dcom.sun.jndi.ldap.connect.pool.authentication=none simple - 保存文件并重新尝试同步。
确保在 Microsoft ADV190023 更新后进行身份验证
如果您使用的 Microsoft Active Directory 启用了通道绑定和 LDAP 签名,则必须执行额外步骤来确保 GCDS 使用基于 SSL 的 LDAP 进行身份验证,否则,GCDS 将无法连接到 Active Directory,且您将无法进行同步。即使您之前通过标准 LDAP 身份验证成功运行了同步,也需要执行以下步骤。请参阅 Microsoft 文档,详细了解 Microsoft 有关 ADV190023 的公告。
如果您已成功使用基于 SSL 的 LDAP,则无需执行任何步骤。
第 1 步:在 Active Directory 中启用 TLS术语 TLS 和 SSL 通常可以互换使用。
要在 Active Directory 中启用 TLS,请参阅以下 Microsoft 文章:
签署您网域控制器的证书授权机构 (CA) 必须受 GCDS 信任,而大多数知名的互联网 CA(例如 Verisign、Comodo 和 Let's Encrypt)均受其信任。如果您使用此类 CA,则可以跳过此步骤。
如果您的 CA 不受信任或您使用的是自己的根 CA,则请按照对证书相关错误进行修正中的步骤操作。- 打开“配置管理器”,然后前往 LDAP 配置页面。
- 将连接类型设置设为 LDAP+SSL。
- 将“端口”设置设为 636(如果您之前使用的是 389)或 3269(如果您之前使用的是 3268)。
- 点击测试连接。
“Google”、Google Workspace 以及相关标志和徽标是 Google LLC 的商标。其他所有公司名和产品名是其各自相关公司的商标。