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:
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 .