文档菜单
文档首页
/ / /
Laravel MongoDB
/ /

启用并配置TLS

本页内容

  • 概述
  • 启用TLS
  • 配置证书
  • 参考证书
  • 更多信息

在本指南中,您可以了解如何使用TLS协议来保护您与MongoDB部署的连接。要配置使用TLS的连接,请在应用程序的config/database.php文件中启用TLS选项,并可选择提供证书以供验证。config/database.php文件。

提示

要了解更多关于TLS的信息,请参阅维基百科上的传输层安全性.

在您的应用程序config/database.php文件中,您可以通过以下方式之一在MongoDB部署的连接上启用TLS:

  • 将连接字符串中的tls选项设置为true

  • 在mongodb连接条目的options属性中将tls选项设置为true

从以下选项中选择:连接字符串连接选项选项卡中查看相应的代码示例

'connections' => [
'mongodb' => [
'driver' => 'mongodb',
'dsn' => 'mongodb://<hostname>:<port>/?tls=true',
'database' => 'myDB',
]
]
'connections' => [
'mongodb' => [
'driver' => 'mongodb',
'dsn' => '<connection string>',
'database' => 'myDB',
'options' => [
'tls' => true,
],
]
]

要查看连接选项的完整列表,请参阅连接选项.

注意

如果您的连接字符串通过包含mongodb+srv前缀来使用DNS SRV记录,则默认情况下您的连接已启用TLS。

为了成功初始化TLS请求,您的应用程序可能需要提供加密证书以证明其身份。您的应用程序的证书必须以PEM文件格式存储,以便在连接时启用TLS。

重要

对于生产使用,我们建议您的MongoDB部署使用由同一证书颁发机构生成和签名的有效证书。对于测试,您的部署可以使用自签名证书。

以下列表描述了客户端可以提供以建立启用TLS的连接的组件

TLS组件
描述
证书颁发机构(CA)
一个或多个证书颁发机构,在建立TLS连接时信任。您可以将此文件的路径传递给tlsCAFile选项。
客户端证书
一个数字证书,允许服务器验证您的应用程序的身份以建立加密的网络连接。您可以将此文件的路径传递给tlsCertificateKeyFile选项。
证书密钥
客户端证书私钥文件。此密钥通常包含在证书文件中。如果您必须提供此项目,证书和密钥应连接在一个文件中,您可以将其传递给tlsCertificateKeyFile选项。
密码短语
如果私钥被加密,则用于解密私钥的密码。您可以将此文件的路径传递给tlsCertificateKeyFilePassword选项。

如果需要,您必须在配置您的mongodb连接时引用您的证书,以便服务器在客户端连接之前验证它们。

我们建议您在连接配置的options属性中引用您的证书并设置其他TLS选项,而不是在连接字符串中。这提高了您应用程序中的代码可读性。

options属性中设置以下选项以引用您的证书

  • tlsCAFile

  • tlsCertificateKeyFile

  • tlsCertificateKeyFilePassword

注意

出于测试目的,您可以将以下选项设置为true以禁用验证

  • tlsAllowInvalidCertificates

  • tlsAllowInvalidHostnames

或者,您可以将tlsInsecure选项设置为true以隐式设置前面的两个选项。

在生产环境中指定这些选项可能会使您的应用程序不安全。有关更多信息,请参阅服务器手册中的连接选项参考。

以下示例配置了启用TLS的连接

'connections' => [
'mongodb' => [
'driver' => 'mongodb',
'dsn' => '<connection string>',
'database' => 'myDB',
'options' => [
'tls' => true,
'tlsCAFile' => '<path to CA certificate>',
'tlsCertificateKeyFile' => '<path to private client certificate>',
'tlsCertificateKeyFilePassword' => '<path to client key passphrase>',
]
]
]

有关设置URI选项的更多信息,请参阅MongoDB\\Driver\\Manager::__construct() API文档。

有关在连接上启用TLS的更多信息,请参阅以下服务器手册文档

后退

连接选项