SSL Bindings are randomly getting deleted for a website with error "SSL Certificate Settings deleted
Published Mar 18 2019 12:25 PM 7,307 Views
Microsoft

Symptoms

 

Are you getting into a scenario wherein randomly your Website loses or changes the SSL certificate bindings from within the IIS manager? And you realize it only when users complain that they are unable to reach the HTTPS site, or that they get a certificate warning. They are able to access the website over HTTP but not over HTTPS because the certificate binding is lost for the website, or they may be prompted that the certificate is expired, or the site name is incorrect. At this point of time you also notice that System Event log entry shows the following:

 

Log Name:      System 
Source:        Microsoft-Windows-HttpEvent 
Date:          3/31/2010 2:43:28 PM 
Event ID:      15300 
Task Category: None 
Level:         Warning 
Keywords:      Classic 
User:          N/A 
Computer:      myMachine 
Description: 
SSL Certificate Settings deleted for Port : 0.0.0.0:443 .

 

If you go to the IIS manager and check the bindings for the Website in question you will see either the certificate binding is lost or some other certificate is listed.

 

You can also crosscheck the registry entry below for your IP/Port binding associated with your website and you may find it deleted.

 

HKLM\System\CurrentControlSet\SERVICES\HTTP\Parameters\SslBindingInfo\X.X.X.X:443

 

Here is how it looks if you have the proper binding set at the http.sys level in the Registry.

 

clip_image002

 

Note:  Should the certificate be changed, the binding will look the same.

 

Assessment

 

If you are experiencing the above problem it could be related to the following <customMetadata> tag in your ApplicationHost.config.

 

<key path="LM/W3SVC/X">

 

<property id="5506" dataType="Binary" userType="1" attributes="None" value="oXiHOzFAMOF0YxIuI7soWvDFEzg=" />

 

</key>

 

The above property is used to store a SSL certificate hash. It is specifically the ID 5506 entry you need to check for. That ID is the legacy property for certificate hash. Whenever any application/service which depends upon the ABO mapper runs/starts, it tries to initialize the ABO tree structure which includes generating custom nodes and properties. During this process it reads from this custom metadata section and tries to map the properties in the ABO tree structure. During mapping it deletes the current SSL mapping(s) at the http.sys level and recreates a new one using the above hash value. If this value is invalid for some reason it fails to add the new entry for SSL binding at the http.sys level. So in such a case the above registry key does not have an entry for the website’s IP:Port combination corresponding to the SSL setting in the UI like below:

 

clip_image004

 

Call stack output

 

If you use the Debugging Tools for Windows and the Microsoft symbol server to attach to the process Inetinfo.exe, you will notice a call stack that resembles the following below:

 

abocomp!UpdateSSLProperty 
abocomp!SITE_CUSTOM_PROVIDER::MapSetData+0x371 
abocomp!ABO_NODE::MapSetData+0xd9 
abocomp!ABO_NODE::SetData+0xbd 
abocomp!ABO_TREE::SetCustomProperty+0x34a 
abocomp!ABO_TREE::GenerateCustomNodesAndProperties+0x1ad 
abocomp!ABO_TREE::GenerateTree+0x28d 
abocomp!ABO_WRAPPER::InitializeTreeAndState+0xad 
abocomp!ABO_WRAPPER::GetCurrentAboTree+0xc7 
abocomp!ABO_WRAPPER::OpenKey+0x154 
COADMIN!CADMCOMW::OpenKeyHelper+0x172 
COADMIN!CADMCOMW::OpenKey+0x53 
RPCRT4!Invoke+0x65 
RPCRT4!NdrStubCall2+0x348 
RPCRT4!CStdStubBuffer_Invoke+0x9a 
ole32!SyncStubInvoke+0x5d 
ole32!StubInvoke+0xdf 
ole32!CCtxComChnl::ContextInvoke+0x19f 
ole32!AppInvoke+0xc2 
ole32!ComInvokeWithLockAndIPID+0x407 
ole32!ThreadInvoke+0x1f0 
RPCRT4!DispatchToStubInCNoAvrf+0x14 
RPCRT4!RPC_INTERFACE::DispatchToStubWorker+0x100 
RPCRT4!RPC_INTERFACE::DispatchToStub+0x62 
RPCRT4!RPC_INTERFACE::DispatchToStubWithObject+0x5b 
RPCRT4!LRPC_SCALL::DispatchRequest+0x436 
RPCRT4!LRPC_SCALL::HandleRequest+0x200 
RPCRT4!LRPC_ADDRESS::ProcessIO+0x44a 
RPCRT4!LOADABLE_TRANSPORT::ProcessIOEvents+0x24a 
RPCRT4!ProcessIOEventsWrapper+0x9 
RPCRT4!BaseCachedThreadRoutine+0x94 
RPCRT4!ThreadStartRoutine+0x24 
kernel32!BaseThreadInitThunk+0xd 
ntdll!RtlUserThreadStart+0x1d

 

We break into the function which calls into the HTTP.sys at the kernel mode to delete the SslBindingInfo Registry key.

 

Steps to reproduce

 

We can reproduce this issue at will by adding the following under <CustomMetadata> section of your applicationhost.config file

 

<key path="LM/W3SVC/X">

 

<property id="5506" dataType="Binary" userType="1" attributes="None" value="oXiHOzFAMOF0YxIuI7soWvDFEzg=" />

 

</key>

 

and then launching any application which requires ABO Mapper, for e.g. launching Inetmgr6.exe or enumerating using ADSUTIL VBscript.

 

Resolution

 

This property is a legacy feature from IIS 6 days and ported onto IIS 7+. If we have correctly added the certificate in the IIS manager this specific property with id 5506 is not needed. Search for the above entry in your ApplicationHost.config file and remove the property in case you are seeing the above issue.

 

PS: I have got the above issue/resolution recently documented as a fast-publish KB article 2025598.

 

Author: Saur212

1 Comment
Version history
Last update:
‎Mar 18 2019 12:25 PM
Updated by: