Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open-SQLConnection in 2.x (without TrustServerCertificate=true;) fails: "The certificate chain was issued by an authority that is not trusted" - 1.9.x always works #160

Open
kwein123 opened this issue Jul 18, 2024 · 4 comments

Comments

@kwein123
Copy link

When I connect to our SQL Server via SimplySQL 1.9.0 or 1.9.1, it works fine, regardless of my connection string. When I run the exact same script but specify the use of SimplySQL version 2.0.2.70 or 2.0.4.75, if I don't add "TrustServerCertificate=true;", I get:

Open-SQLConnection: V:\KWeinrich\Storage\Create-AllServerCountReport.ps1:485
Line |
 485 |      Open-SqlConnection -ConnectionName 'SS' -ConnectionString $conn # …
     |      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     | 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.)

Here is my simple connection string:

SS connection open Server=XYZ;Database=StorageReporting;Integrated Security=SSPI;

Pwsh.exe version 7.4.3

PS V:\KWeinrich\KW-CheckAllServers> get-installedmodule simplysql -allversions

Version              Name                                Repository           Description
-------              ----                                ----------           -----------
1.9.1                SimplySql                           PSGallery            Querying SQL (SQL Server, Oracle, Postgr…
2.0.2.70             SimplySql                           PSGallery            Querying SQL (SQL Server, Oracle, Postgr…
2.0.4.75             SimplySql                           PSGallery            Querying SQL (SQL Server, Oracle, Postgr…

But, if I add TrustServerCertificate=true; to the connection string, yielding:

Server=V26267NCPK609;Database=StorageReporting;Integrated Security=SSPI;TrustServerCertificate=true;

Then it works regardless of SimplySQL version. But I would rather not specify TrustServerCertificate = true - I'd rather it check and verify the cert.

@mithrandyr
Copy link
Owner

@kwein123 -- so based upon the error provider: SSL Provider, error: 0 - The certificate chain was issued by an authority that is not trusted.) it looks like there cert your SQL Server is using is not protected by a trusted authority. I can say that SimplySql 2.0+ changed the provider for SQL Server, I migrated to Microsoft.Data.SqlClient from System.Data.SqlClient and that this newer library from Microsoft has enhanced security. I would begin with checking the certificate your sql server is using and verify how it was signed and whether the client computer trusts that signing authority.

@mithrandyr
Copy link
Owner

@kwein123 -- so, the next version (2.1.0), which is coming soon, should fix this. I changed the way the application is published, targeting NET6.0 and not just .NET Standard 2.0. This should pull in a different version of the MySqlConnector that will work properly. I'll notify you when its ready and you can test!

@mithrandyr
Copy link
Owner

@kwein123 -- please try version 2.1 -- as this is hopefully fixed.

@kwein123
Copy link
Author

kwein123 commented Dec 12, 2024 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants