Manage SSL certificates with IIS6

Authors: Brusten Philip & Van der Velpen Jan
Last modified: Monday, 22-May-2006 15:26:05 CEST

!WARNING!
WE STRONGLY ADVISE YOU NOT TO USE THIS METHOD. (se we don't support it either)
Microsoft uses MS-specific cryptographic providers which will most likely cause compatibility problems. We thought this was a good method until we ran into compatibility problems that could not easily be fixed.
We suggest you manage all SSL keys with OpenSSL and convert them to pkcs12 if you want to import them into IIS.

Table of contents

Introduction

To secure any http connections (=https protocol) you have to use SSL certificates. We recommend using certificates that are signed by a commercial CA. When these are used for the webserver, a browser-user does not get an annoying security popup (because the root CA that signed your certificate is -by default- in the truststore of the browser). For the Shibboleth software we recommend using the same certificates because this will save you money and prevent a lot of possible trust problems. We suggest you use GlobalSign to sign the public certificates for use within our federation.

Generate private key and Certificate Signing Request

If your IIS is already SSL-enabled you can skip this step and jump to Export private key.
This step will create a new private key and matching Certificate Signing Request.
  1. We will be using the "Web Server Certificate Wizard" in the IIS manager:
  2. Submit the new .csr file at https://www.globalsign.net/digital_certificate/serversign/request.cfm to be signed by Globalsign
    note: this will cost you money
  3. Wait for a reply with your new public certificate. That will take some time (typically a day or two). When you receive it, save the signed certificate to c:\pki\SUBDOMAIN.kuleuven.be.crt

Import signed certificate

In this step you will import the signed public certificate that you received from your Certificate Authority into IIS.
  1. Save the received certificate to c:\pki\SUBDOMAIN.kuleuven.be.crt
  2. You have to use the "Web Server Certificate Wizard" in the IIS manager again to install the new certificate:
  3. your IIS webserver is now listening on port 443, you can try https://localhost/Shibboleth.sso (again, localhost might not be the correct hostname for the mapping of this request to the Shibboleth handler)

Export private key

Unfortunately IIS does not allow you to export your private key seperately. That is why we will export both the cert and the key into a keystore first. Then we will convert the keystore into a seperate private key and certificate using OpenSSL.
  1. Export the private key:
    (you can also do this in the IIS management console, but that gives you less options)
  2. Convert the keystore to seperate key (and certificate):
  3. You now have two seperate files in c:\pki\: one containing your private key and one containing the matching public certificate
  4. These two files will be specified in the configuration of the Shibboleth software.
    Note that this information is used to encrypt and/or sign all network communication. Therefore you should take great care in protecting access to these files! Only the webserver and the Shibboleth deamon need read access.