Forum Discussion
Kirk_51216
Nimbostratus
Jan 18, 2012Powershell list certificates
Hi,
I am trying to list all the details for certificates used in SSL profiles using Powershell.
This is the code I am using: Initialize-F5.iControl -hostname $g_bgip -use...
Liran_Ben_Abu_2
Nimbostratus
Jul 02, 2015Hi ,
i wrote something with powershell that can be use.
the script export the SSL certificates - calculate the expiration date 60 days back and send the report in table to email (if you have mail relay)
the script :
Add-PSSnapin iControlSnapIn
$f5_VA_1= "big_ip_address_no1"
$f5_va_3 = "big_ip_address_no2"
$f5_ams_1 = "big_ip_address_no3"
$f5_all = @("$f5_VA_1","$f5_va_3","$f5_ams_1")
$table = $null
$row = $null
Create the Report Table
Table
$tabName = "Table"
Create Table object
$table = New-Object system.Data.DataTable &8220;$tabName&8221;
Define Columns
$ColumnName1="F5_Name"
$ColumnName2="Object"
$ColumnName3="Status"
$ColumnName4="Action"
$ColumnName5="Error"
$col1 = New-Object system.Data.DataColumn $ColumnName1,([string])
$col2 = New-Object system.Data.DataColumn $ColumnName2,([string])
$col3 = New-Object system.Data.DataColumn $ColumnName3,([string])
$col4 = New-Object system.Data.DataColumn $ColumnName4,([string])
$col5 = New-Object system.Data.DataColumn $ColumnName5,([string])
Add the Columns
$table.columns.add($col1)
$table.columns.add($col2)
$table.columns.add($col3)
$table.columns.add($col4)
$table.columns.add($col5)
$row = $null
Create a row
$row = $table.NewRow()
Enter data in the row
$row.$ColumnName1 = "$f5"
$row.$ColumnName2 = "$certcn"
$row.$ColumnName3 = "$certdate"
$row.$ColumnName4 = "Please Check the Certificate Status"
Add Row to Table
$table.Rows.Add($row)
$certcn = $null
`</pre>
foreach ($f5 in $f5_all){
<pre class="prettyprint lang-tcl">`Initialize-F5.iControl -Hostname $f5 -username admin -Password Big-IP_password
$begin = Get-Date -UFormat "%m/%d/%Y"
`</pre>
$now = (get-date).AddDays(-60)
$g_ic = Get-F5.iControl
$ErrorActionPreference = "silentlycontinue"
$certs = ($g_ic).ManagementKeyCertificate.get_certificate_list('0');
for($i=0; $i -le $certs.count; $i++) {
$certdate = $certs[$i].certificate.expiration_string;
$certcn = $certs[$i].certificate.subject.common_name;
<pre class="prettyprint lang-tcl">` $certdate1 = ($certdate -split ' ')[0,1,3]
`</pre>
$certdate2 = $certdate1[0] +" " + $certdate1[1] +" " + $certdate1[2]
$certdate3 = [datetime]::ParseExact($certdate2,"MMM dd yyyy",$null)
$monthdiff = ($certdate3 - [datetime]$begin).TotalDays
<pre class="prettyprint lang-tcl">` Get certificates from all F5
if($monthdiff -le 60 -and $certcn -ne $null){
$row = $table.NewRow()
Enter data in the row
$row.$ColumnName1 = $f5
$row.$ColumnName2 = "$certcn"
$row.$ColumnName3 = "$certdate3"
$row.$ColumnName4 = "the certificate $certcn will expire in $monthdiff days"
Add Row to Table
$table.Rows.Add($row)
}
}
}
$table
Send Report if Error exist
if ($table -ne $null){
$Header=$null
$Header = @"
<style>
TABLE {border-width: 1px;border-style: solid;border-color: black;border-collapse: collapse;}
TH {border-width: 1px;padding: 3px;border-style: solid;border-color: black;background-color: 6495ED;}
TD {border-width: 1px;padding: 3px;border-style: solid;border-color: black;}
</style>
"@
$bodytable = $table | select $ColumnName1,$ColumnName2,$ColumnName3,$ColumnName4 | ConvertTo-Html -Head $Header -PreContent $Pre -PostContent $Post
only if you have mail relay
$mailto="mail_address"
$mailfrom="from where you get mail"
$smtp="mail_relay_ip"
Send-MailMessage -To "mailto" -Subject "certificates" -Body "$bodytable"` -BodyAsHTML -SmtpServer $smtp -From $mailfrom
}
Greetings,
Liran Ben-Abu
DevOps Engineer at Perion network LTD.
Red-Erik_144667
Nimbostratus
Nov 20, 2015Please, put the code in a readeble format. Too many HTML chars so it'0s really difficult to grab and use it.
Thank You very much.
Regards.
Red.
Help guide the future of your DevCentral Community!
What tools do you use to collaborate? (1min - anonymous)Recent Discussions
Related Content
DevCentral Quicklinks
* Getting Started on DevCentral
* Community Guidelines
* Community Terms of Use / EULA
* Community Ranking Explained
* Community Resources
* Contact the DevCentral Team
* Update MFA on account.f5.com
Discover DevCentral Connects