Symptom: When changing an SSL certificate inside of the SQL Server 2008 R2 Reporting Services Configuration Manager, you receive the following error:
Create certificate binding.
When you click on "Tell me more about the problem and how to resovle it." you receive the following:
Microsoft.ReportingServices.WmiProvider.WMIProviderException: An SSL binding already exists for the specified IP address and port combination. The existing binding uses a different certificate from the current request. Only one certificate can be used for each IP address and port combination. To correct the problem, either use the same certificate as the existing binding, or remove the existing SSL binding and create a new binding using the certificate of the current request.
---> System.Runtime.InteropServices.COMException (0x80040238): Exception from HRESULT: 0x80040238
--- End of inner exception stack trace ---
at Microsoft.ReportingServices.WmiProvider.RSWmiAdmin.ThrowOnError(ManagementBaseObject mo)
at Microsoft.ReportingServices.WmiProvider.RSWmiAdmin.CreateSSLCertificateBinding(String application, String certificateHash, String ipAddress, Int32 port)
at ReportServicesConfigUI.WMIProvider.RSReportServerAdmin.CreateSSLCertificateBinding(UrlApplication app, String certificateHash, String ipAddress, Int32 port)
This error really sucks and the reason behind it is that Microsoft just didn't do a good job removing/unbinding SSL certificates from an interface. Luckily, I have the solution to get you up and going...
Solution:
- Download the Windows Server 2003 Support Tools from Microsoft
- Install the tools on your local machine or on the server. You may get a warning about incompatibility if you install it on your Windows 7 machine. I ignored this and things seem to work fine 😛 Just note if you do this, you will need to copy the following folder from your local machine to the server with SQL Server Reporting Services Configuration Manager: C:\Program Files (x86)\Support Tools
- Open up a command prompt with Administrator privileges on the server with SQL Server 2008 R2 Reporting Services Configuration Manager
- Navigate to the following directory (if you copied the folder from your local machine, browse to the appropriate directory you copied the support tools to):
- cd "C:\Program Files (x86)\Support Tools"
- Launch SQL Server 2008 R2 Reporting Services Configuration Manager
- Start->All Programs->Microsoft SQL Server 2008 R2->Configuration Tools->
Reporting Services Configuration Manager
- Start->All Programs->Microsoft SQL Server 2008 R2->Configuration Tools->
- Click on Web Service URL
- Click on the Advanced... button
- Remove any items listed inside of the "Multiple SSL Identities for the Report Server Web Service" box.
- Click OK
- Go back to your command prompt with the Administrator privileges and execute the following commands to unbind the old SSL certificate
- netsh http delete sslcert ipport=[::]:443
- You should see something like "SSL Certificate successfully deleted" -- If not, that is fine
- httpcfg delete ssl /i 0.0.0.0:443
- You should see something like "HttpDeleteServiceConfiguration completed with 0." -- If not, that is fine as long as the command above said it removed a certificate
- netsh http delete sslcert ipport=[::]:443
- Go back to the Reporting Services Configuration Manager and select your SSL certificate in the SSL Certificate dropdown.
- Click Apply
At this point, your certificate should have bound to the interface successfully.
Hope this helps someone!