2016-05-11 6 views
0

SQL Serverへのすべてのトラフィックを暗号化します。したがって、SSL証明書があり、SQL Serverにインストールされています。SSL暗号化を使用したSQL Serverへの接続

.NET Webアプリケーションは、encrypt=true機能を使用してSQL Serverに接続し、SQL ServerとWeb Server間のトラフィックを暗号化できます。
Delphi 2007のデスクトップアプリケーションもあり、SQL Serverとアプリケーションユーザーの間でトラフィックを暗号化したいと考えています。

アプリケーションユーザーは、"encrypt connection"機能をチェックしてSQL Management Studioを介してSQL Serverに接続できますが、Delphiアプリケーション経由で接続することはできません。 OLEDB接続文字列に"encrypt=true"を追加しますが、何も変更されません。

すべてのトラフィックを暗号化するにはどうすればよいですか?

+0

具体的に*接続できないものは何ですか?エラーメッセージが表示されますか?もしそうなら、* exact *エラーメッセージは何ですか?接続するコンポーネントは何ですか?あなたのConnectionStringは何ですか? –

+0

https://www.connectionstrings.com/all-sql-server-connection-string-keywords/(ADOの場合):encryptプロパティがtrueに設定され、trustServerCertificateプロパティがtrueに設定されている場合、ドライバはSSL証明書を検証します。これは、通常、インスタンスに自己署名証明書だけがあるなど、テスト環境での接続を許可するために必要です。 String connectionUrl = "jdbc:sqlserver:// localhost:1433;" + "databaseName = AdventureWorks; integratedSecurity = true;" + "encrypt = true; ** trustServerCertificate = true **" – Johan

+0

使用している接続文字列: 'Provider = SQLOLEDB。データソース= OurServer \ OurInstance;準備手順= 1;自動変換= True;パケットサイズ= 4096;列の照合を使用してタグを付ける、暗号化= True、統合セキュリティ= SSPI、セキュリティ情報を維持する= False、初期カタログ= OurDatabaseName;可能な場合= False' 私は '接続できません 'という意味です.Sqlサーバーに接続できますが、暗号化された接続を確立することはできません。 – Aktas

答えて

0

SSL接続の暗号化は、クライアント(IIS Webサイトまたはデスクトップアプリケーション)から開始することも、サーバー側で実施することもできます。どちらの方法でも、証明書をインストールして、ユーザーまたはプロセスが使用できるようにして、他のシステムが検証できる接続を確立する必要があります。クライアント側の暗号化は、 "encrypt = true"を使用するか、SQL Server Management Studioのチェックボックスオプションを選択して構成します。 SQL Serverのサーバー側の暗号化は、データベースエンジンを実行しているサービスアカウントの証明書ストアに証明書と秘密キーを追加し、SQL Server Configuration Managerを使用して暗号化に使用する証明書を指定し、Force Encryptionプロパティをtrueに設定します。自分のドメイン証明機関によって生成された証明書またはパブリックCAから購入された証明書を使用することをお勧めします。これは、自己署名入りの証明書が中間の攻撃の人に脆弱であるためです。

yur Delphi 2007アプリケーションの主な問題は、サーバーがアプリケーションによって提示された証明書を検証できず、信頼することを拒否するか、またはクライアントで使用できる証明書がないことです。証明書の検証の問題は珍しいことではありません。すべての接続でサーバー側の暗号化用にサーバーを構成したとき、独自の証明書の検証を管理する仮想マシン(Java VMなど)にも同じドメインCA証明書を追加する必要がありました。興味深いことに、trustServerCertificate = trueについて読むと、「encryptプロパティがtrueに設定され、trustServerCertificateプロパティがtrueに設定されている場合、SQL ServerのMicrosoft JDBCドライバはSQL Server SSL証明書を検証しません」と記載されています。私はこのプロパティを使用していませんが、証明書をVMに追加するのではなく動作します。また、レプリケーションがある場合は、一方のサーバーが暗号化を強制し、もう一方のサーバーが暗号化を強制しないと、問題が発生します。

証明書の検証方法についての詳細は、「信頼連鎖の歩き方」と証明書のデジタル署名のリサーチを参照してください。それがなぜ起こっているのかを理解するのに役立ちます。

関連する問題