Если вы используете недоверенные/незащищенные сети для подключения клиентов/приложений к базе данных на Microsoft SQL Server, желательно использовать шифрование трафика. В этой статье мы покажем, как настроить и включить обязательное SSL/TLS-шифрование трафика для подключений клиентов к Microsoft SQL Server.
Чтобы включить шифрование для подключения к MS SQL Server, на сервере нужно установить TLS/SSL сертификат. Это может быть коммерческий сертификат, сертификат, выданный вашим CA, или самоподписанный сертификат. TLS сертификат должен удовлетворять следующим условиям:
Server Authentication 1.3.6.1.5.5.7.3.1
; certmgr.msc
) или компьютера ( certlm.msc
); Можно создать самоподписанный сертификат с помощью PowerShell (самоподписанные сертификаты рекомендуется использоваться только в тестовых средах):
New-SelfSignedCertificate -DnsName srv-rds1.resource.com -CertStoreLocation cert:LocalMachineMy
Если вы будете обращаться к MSSQL инстансу не только по имени хоста, но и по другим именам (например, на сервере находится листенер группы высокой доступности Always-On с базой данный RDS Connection Broker ), нужно добавить все возможные имена в Subject Alternative Name. Для выпуска самоподписанного сертификата с несколькими SAN на три года:
$todaydate = Get-Date
$add3year = $todaydate.AddYears(3)
$newcert=New-SelfSignedCertificate -DnsName srv-rds1,srv-rds1.remontka.loc,SQL-RDSDB-liste.remontka.loc -CertStoreLocation cert:LocalMachineMy -notafter $add3year
Импортируйте сертификат в доверенные:
$certFile = Export-Certificate -Cert $newcert -FilePath C:certname.cer
Import-Certificate -CertStoreLocation Cert:LocalMachineAuthRoot -FilePath $certFile.FullName
Теперь нужно привязать ваш сертификат к установленному SQL Server :
Чтобы клиент всегда использовал шифрованное подключение к серверу MSSQL нужно:
Data Source=sqldb1.remontka.com;Integrated Security=False;User ID=test;Password=[Password];Encrypt=True
Cannot connect to SRV-SQL._x000D_A connection was successfully established with the server, but then an error occurred during the login process. (provider: SSL Provider, error: 0 - The certificate chain was issued by an authority that is not trusted.) (Microsoft SQL Server, Error: -2146893019)
Вы можете добавить сертификат в доверенные на компьютерах домена с помощью GPO .
Чтобы SSMS всегда использовал шифрование для подключения к базе данных SQL Server, откройте окно подключения (Connect to Server) -> Options -> включите опцию Encrypt Connection .
При появлении ошибки “ The target principal name is incorrect” , проверьте что вы используете для подключения имя SQL Server, указанное в Subject Name или SAN сертификата.
Вы можете подключиться к SQL сервер с помощью PowerShell модуля SqlServer и проверить, поддерживает ли ваш SQL Server шифрование подключений:
Invoke-Sqlcmd -ServerInstance "srv-rds1" -Query "SELECT DISTINCT encrypt_option FROM sys.dm_exec_connections WHERE session_id = @@SPID"
-ServerInstance "srv-rds1,21221"
В нашем примере SQL Server поддерживает шифрованные подключения ( encrypt_option=TRUE
).
Базы данных Azure SQL поддерживают только защищенные подключения. Даже если в SSMS не вкдлючена опция «Encrypt connection», подключение к Azure SQL будет все равно зашифровано (см. статью Безопасность БД в Azure SQL ).
Zulip — программное обеспечение для реализации корпоративного чата. Разработан в 2012 году, в 2014 был…
Zookeeper — cервис-координатор, который позволяет обеспечить контроль синхронизации данных. Разработан на Java компанией Apache Software…
Zimbra — программное обеспечение для реализации почтового сервиса или, если сказать точнее, автоматизации совместной деятельности…
Zabbix — бесплатная система мониторинга. Позволяет отслеживать состояние сетевых узлов, компьютеров и серверов. Возможности: Поддержка…
YouTube — компания-владелец одноименного портала для просмотра и хранения видео. Чтобы пользоваться данным порталом достаточно…
Yota — провайдер, предоставляющий доступ к сети Интернет по беспроводной связи. Впервые, сервис начал работать…