文档菜单
文档首页
/
Spark 连接器

配置 TLS/SSL

在本页

  • 概述
  • 创建 JVM 信任存储库
  • 创建 JVM 密钥存储库
  • 启用 TLS/SSL
  • 配置对证书存储的访问
  • 在您的 Spark 配置文件中设置属性
  • 从命令行设置属性

在本指南中,您可以学习如何配置TLS/SSL 用于确保 MongoDB Spark 连接器和您的 MongoDB 部署之间的通信安全。

要使用 TLS/SSL,您的应用程序和每个 Spark 工作进程都必须有权访问证明其身份的加密证书。将这些证书存储在您的 JVM 信任存储和 JVM 密钥存储中。您可以通过 Spark 配置文件或从命令行启动 Spark 作业来配置对这些证书的访问。

JVM 信任存储保存了识别与您的应用程序交互的其他应用程序的证书。使用这些证书,您的应用程序可以证明与另一个应用程序的连接是真实且安全的。

使用 JDK 提供的命令行工具 keytool 创建信任存储

keytool -importcert -trustcacerts -file <path to certificate authority file>
-keystore <path to trust store> -storepass <password>

JVM 密钥库保存了用于安全地识别您的应用程序的其他应用程序的证书。使用这些证书,其他应用程序可以证明与您的应用程序的连接是真实且安全的。

使用 keytoolopenssl 命令行工具创建密钥库。

您可以通过连接 URI 中的 tls 参数来启用 MongoDB 实例的连接 TLS/SSL。

以下示例展示了带有 tls 选项并设置为 true 的连接 URI,以启用 TLS/SSL。

"mongodb+srv://<username>:<password>@<cluster-url>?tls=true"

有关创建连接字符串的更多信息,请参阅服务器手册中的 连接字符串指南

为了配置您的 Spark 应用程序以访问存储在 JVM 信任存储和 JVM 密钥存储中的证书,必须设置以下系统属性

  • javax.net.ssl.trustStore

  • javax.net.ssl.trustStorePassword

  • javax.net.ssl.keyStore

  • javax.net.ssl.keyStorePassword

您可以在 Spark 配置文件中按以下方式设置系统属性

spark.executor.extraJavaOptions=-Djavax.net.ssl.trustStore=<Path to your trust store> -Djavax.net.ssl.trustStorePassword=<Your trust store password> -Djavax.net.ssl.keyStore=<Path to your key store> -Djavax.net.ssl.keyStorePassword=<Your key store password>"
spark.driver.extraJavaOptions=-Djavax.net.ssl.trustStore=<Path to your trust store> -Djavax.net.ssl.trustStorePassword=<Your trust store password> -Djavax.net.ssl.keyStore=<Path to your key store> -Djavax.net.ssl.keyStorePassword=<Your key store password>"

您可以通过在提交 Spark 作业时使用 --conf 标志来添加系统属性,从命令行设置系统属性

./bin/spark-submit --name "<Your app name>" \
--master "<Master URL>" \
--conf "spark.executor.extraJavaOptions=-Djavax.net.ssl.trustStore=<Path to your trust store> -Djavax.net.ssl.trustStorePassword=<Your trust store password> -Djavax.net.ssl.keyStore=<Path to your key store> -Djavax.net.ssl.keyStorePassword=<Your key store password>" \
sparkApplication.jar \
--conf "spark.driver.extraJavaOptions=-Djavax.net.ssl.trustStore=<Path to your trust store> -Djavax.net.ssl.trustStorePassword=<Your trust store password> -Djavax.net.ssl.keyStore=<Path to your key store> -Djavax.net.ssl.keyStorePassword=<Your key store password>" \
sparkApplication.jar

返回

配置 Spark