Self-Signed Certificates on IIS 7 – the Easy Way and the Most Effective Way | Demystifying The Code
Self-Signed Certificates on IIS 7 – the Easy Way and the Most Effective Way
Supporting multiple sites with a single SSL Certificate « Binarymist
Using the appcmd utility
We now add the https binding and host information to our sites that need to share the wild card certificate.
Run a command prompt as administrator and
cd
to %WINDIR%\system32\inetsrv
The format of the command looks like the following:
appcmd
set
site /site.name:
"<your website name>"
/+bindings.[protocol=
'https'
,bindingInformation=
'*:443:<your ssl domain>'
]
For our above three sites we wanted to use the same certificate,
mysane.site.com, myinsane.site.com, mycrazy.site.com
They may be named respectively:
mysane, myinsane, mycrazy
So for example,
we’d run the following commands:
appcmd
set
site /site.name:
"mysane"
/+bindings.[protocol=
'https'
,bindingInformation=
'*:443:mysane.site.com'
]
You should get feedback similar to the following:
SITE object
"mysane.site.com"
changed
if all goes well
appcmd
set
site /site.name:
"myinsane"
/+bindings.[protocol=
'https'
,bindingInformation=
'*:443:myinsane.site.com'
]
You should get feedback similar to the following:
SITE object
"myinsane.site.com"
changed
if all goes well
appcmd
set
site /site.name:
"mycrazy"
/+bindings.[protocol=
'https'
,bindingInformation=
'*:443:mycrazy.site.com'
]
You should get feedback similar to the following:
SITE object
"mycrazy.site.com"
changed
if all goes well
Although I normally keep it simple and name my sites the same as the URL (your ssl domain) I want to use.
IIS 6
Now this is a bit more work than with IIS 7.
If it’s not already installed, you’ll need the SelfSSL tool.
You can get this from the SSL Diagnostics Kit or the IIS 6.0 Resource Kit which contains lots of other stuff.
Once installed, run IIS.Create the self signed wildcard certificate
You’ll need to generate the certificate for one existing IIS site.
For the first site take note of the site idendifier.
You can see this in the right pane when you select Web Sites from the server node in the IIS manager.
Open a command prompt, you’ll need to run the SelfSSL app.
Actually I think the easiest way to run this is Start menu -> All Programs -> IIS Resources -> SelfSSL -> SelfSSL.
The command string looks like this:
selfssl /n:cn=<your wild card domain> /s:<first website identifier> /P:<port you want to use> /
v
:<number of days to expiration>
So for example, we’d run the following command:
selfssl /n:cn=*.site.com /s:1 /P:443 /
v
:365
Options for SelfSSL
selfssl /?
some of them are:
/N: – This specifies the common name of the certificate. The computer name is used if there is no common name specified.
/K: – This specifies the key length of the certificate. The default is length 1024.
/V: – This specifies the amount of time the certificate will be valid for, calculated in days. The default setting is seven days.
/S: – This specifies the Identifier of the site, which we obtained earlier. The default will always be 1, which is the Default Web Site in IIS.Assign the certificate to the sites that need it
Have a look at the site properties in IIS Manager -> Directory Security tab -> Server Certificate button.
This will start the IIS wizard.
Click Next -> Assign an existing certificate -> Next.
You should see the wild card certificate you created.
Select it, click next, and make sure you assign it the same port that was assigned to the first site.Configure the SecureBindings
In order for IIS to use the host headers with SSL and secure the certificate as we did with appcmd,
you’ll need to run the following command for each of the sites that require it.
My adsutil is found in C:\Inetpub\AdminScripts\
It’s probably not in your path, so you’ll have to run it from location.
cscript adsutil.vbs
set
/w3svc/<website identifier>/SecureBindings
":443:<your ssl domain>"
So for example, we’d run the following command:
cscript adsutil.vbs
set
/w3svc/1/SecureBindings
":443:mysane.site.com"
That should be it.Now if you need to remove a certificate from your store
Run mmc.exeFile menu -> Add/Remove Snap-in… -> Add… -> select Certificates -> Add -> select Computer account -> Next -> select Local computer -> Close -> Ok.
Select the Certificates node, expand Personal, Certificates.
Now in the right window pane, you can manage the certificates.
Delete, Renew etc.