This is too big for a comment on Sean's answer so let me add to it. > q1) can I check if the cert use for SSL encryption is the > MS_SQLAuthenticatorCertifcate ? According to the [Principals (Database Engine)][1] doc the ##MS_SQLAuthenticatorCertificate## cert is used for an internal certificate-based login. The self-signed certificate generated during instance start-up is not exposed by a DMV, at least as far as I know. **EDIT:** Also, Sean mentioned in his answer this certificate is resident only in the SQL Server process memory space and is removed upon SQL Server shutdown for security reasons. > q2) How could a SSL encryption / CERT work with "NO PRIVATE KEY" ? In > all my understanding, a cert/asymmetric encryption will involved a > PUBLIC key (provided in the cert) for encryption, and the owner of the > cert will have its PRIVATE key for decryption ? The actual SQL Server self-signed certificate is an X509 certificate with a public/private key pair. However, note that TLS uses a symmetric key (same key used for both encryption and decryption) to encrypt/decrypt messages over the wire for performance reasons. This session-specific key is generated during the TLS handshake and the self-signed cert (or provisioned one) is used to generate and protect the secrets exchanged, not to encrypt the subsequent messages. This Microsoft doc (https://technet.microsoft.com/en-us/library/dn786441(v=ws.11).aspx) describes how the Transport Layer Security (TLS) protocol works and provides links to the IETF RFCs for TLS 1.0, TLS 1.1, and TLS 1.2. You can find more details of the actual negotiated TLS protocol and cypher from this Extended Event trace but this requires SQL Server 2016 SP1 or later: CREATE EVENT SESSION [tls] ON SERVER ADD EVENT sqlsni.trace( WHERE ([sqlserver].[equal_i_sql_ansi_string]([function_name],'Ssl::Handshake') AND [sqlserver].[like_i_sql_unicode_string]([text],N'%TLS%'))) ADD TARGET package0.event_file(SET filename=N'tls_trace') WITH (MAX_MEMORY=4096 KB,EVENT_RETENTION_MODE=ALLOW_SINGLE_EVENT_LOSS,MAX_DISPATCH_LATENCY=30 SECONDS,MAX_EVENT_SIZE=0 KB,MEMORY_PARTITION_MODE=NONE,TRACK_CAUSALITY=OFF,STARTUP_STATE=OFF); Below is an example of the event text field using a self-signed certificate from the trace against SQL Server 2017 SNISecurity Handshake Handshake succeeded. Protocol: TLS1.2 (1024), Cipher: AES 256 (26128), Cipher Strength: 256, Hash: SHA 384 (32781), Hash Strength: 0, PeerAddr: ::1 [1]: https://learn.microsoft.com/en-us/sql/relational-databases/security/authentication-access/principals-database-engine