web-dev-qa-db-fra.com

Script pour déterminer le certificat SSL attribué à chaque site

J'ai un serveur Web IIS6 avec plus de 100 sites. Récemment, j'ai été obligé de renouveler mon certificat SSL générique utilisé par tous les sites en créant une nouvelle demande de CSR plutôt qu'une demande de renouvellement de CSR. J'ai installé le certificat et je peux mettre à jour chaque site un par un pour utiliser le nouveau certificat. Cependant, je me demandais si:

  1. Il existe un moyen de mettre à jour tous les sites en même temps et
  2. S'il y avait un script, je peux utiliser pour voir quel certificat est actuellement utilisé par chaque site.
2
Thomas

J'ai une réponse pour le deuxième point pour ceux qui sont intéressés. Créez un fichier texte avec le contenu ci-dessous et enregistrez-le avec une extension .vbs. Puis exécutez-le avec cscript myfile.vbs à partir de la ligne de commande. Si vous l'exécutez en tant que cscript myfile.vbs > output.txt, les résultats seront placés dans un fichier texte.

strComputer = "localhost" 
Set objService = GetObject( "IIS://" & strComputer & "/W3SVC")  

EnumServersites objService  

Public Sub EnumServersites( objSrv )  
    For Each objServer IN objSrv  
        If objServer.Class = "IIsWebServer" Then 
            If Not Ubound(objServer.SecureBindings) = "-1" Then 'check to see if there is at least one securebinding  
                WScript.Echo "Site ID = " & objServer.Name & VbCrLf & "Comment = """ & objServer.ServerComment  
                wscript.Echo "SSL Certificate Expiration Date: " & GetSSLExpirationDate(objServer.Name)  
                wscript.Echo "Days Remaining: " & DaysRemaining(GetSSLExpirationDate(objServer.Name))  
                wscript.echo vbcrlf & "-----------------------------" & vbcrlf  
            End If
    End If

    strBindings = vbNullString
    Next 
End Sub 

Private Function GetSSLExpirationDate( strSiteID )  
    Set iiscertobj = WScript.CreateObject("IIS.CertObj")  
    iiscertobj.serverName = "localhost" 
    iiscertobj.InstanceName = "W3SVC/" & strSiteID  

    tmpArray = Split(iiscertobj.GetCertInfo,vbLf)  
    For Each x in tmpArray  
        If Left(x,2) = "6=" Then 
            GetSSLExpirationDate = Mid(x,3,len(x)-2)  
        End If 
    Next 
End Function

Private Function DaysRemaining(strdate)  
    If IsDate(strDate) Then 
        strdate = cDate(strdate)  
    End If 
    DaysRemaining = DateDiff("d",Date,strdate)  
End Function  

J'ai tiré ce script de ici .

1
Thomas