我的 nginx confid 文件如下所示:
server {
listen 80;
listen [::]:80;
server_name hostserver.ru www.hostserver.ru;
return 301 https://hostserver.ru$request_uri;
server_tokens off;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name hostserver.ru www.hostserver.ru;
ssl_certificate /etc/letsencrypt/live/hostserver.ru/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/hostserver.ru/privkey.pem;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
ssl_session_tickets off;
ssl_protocols TLSv1.2;
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-R$
ssl_prefer_server_ciphers on;
add_header Strict-Transport-Security "max-age=31536000" always;
ssl_stapling on;
ssl_stapling_verify on;
root /var/www/html;
index index.html index.htm;
server_tokens off;
... some location stuff...
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,Android 4.0-4.3 不支持 TLS1.2,我更改了配置:
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
Run Code Online (Sandbox Code Playgroud)
但是在使用SSLTest …
Node 现在支持 TLS 1.3,它提供了更高的安全性和更低的延迟。
通过实施 TLS 1.3,Node 应用程序将增加最终用户的隐私,同时通过减少 HTTPS 握手所需的时间来提高请求的性能。
默认情况下已禁用 TLS 1.0 和 1.1,并且加密库已删除不推荐使用的功能。
有没有办法重新启用 1.0 和 1.1?
我有一个版本为1.1MySQL
的数据库。我使用以下代码片段在我的应用程序中建立连接:5.7.19
TLS
.NET Core 3.1
string connStr = "server=Myserver;user id=myuser;password=my password;database=db;SslMode=Required;SslCa=D:\\\\server-ca.pem;SslCert=D:\\\\client-cert.pem;SslKey=D:\\\\client-key.pem;";\n\ntry\n{\n using (MySqlConnection connection = new MySqlConnection(connStr))\n {\n connection.Open();\n connection.Close();\n }\n}\ncatch (Exception ex)\n{\n // handle the exception\n}\n\n\n
Run Code Online (Sandbox Code Playgroud)\n此代码在 中运行良好.NET Core 3.1
,但升级到 后.NET 6
,它会抛出以下异常:
\nMySqlConnector.MySqlException(0x80004005): SSL 身份验证错误\\ r\\ n-- - > System.Security.Authentication.AuthenticationException: 身份验证失败,请参阅内部异常。\\r\\ n-- - > System.ComponentModel.Win32Exception (0x8009030E):System.Net.Security.SslStreamPal.AcquireCredentialsHandle(CredentialUse credUsage, SCH_CREDENTIALS *) 的 System.Net.SSPIWrapper.AcquireCredentialsHandle(ISSPIInterface secModule, String package, CredentialUseintent, SCH_CREDENTIALS * scc) 的安全包中没有可用的凭据。 secureCredential)在System.Net.Security.SslStreamPal.AcquireCredentialsHandleSchCredentials(SslStreamCertificateContext证书Context,SslProtocols协议,EncryptionPolicy策略,Boolean isServer)在System.Net.Security.SslStreamPal.AcquireCredentialsHandle(SslStreamCertificateContext证书Context,SslProtocols协议,EncryptionPolicy策略,布尔值 isServer) -- - 内部异常堆栈跟踪结束-- - 在 System.Net.Security.SslStreamPal.AcquireCredentialsHandle(SslStreamCertificateContextcertificateContext、SslProtocols …