Display SSL expiry warnings (#2925)

This commit is contained in:
Mateusz Gajewski
2016-10-14 13:48:08 +02:00
committed by Harshavardhana
parent 0320a77dc0
commit c03ce0f74a
11 changed files with 752 additions and 6 deletions

View File

@@ -17,10 +17,12 @@
package cmd
import (
"crypto/x509"
"fmt"
"os"
"runtime"
"strings"
"time"
humanize "github.com/dustin/go-humanize"
"github.com/minio/mc/pkg/console"
@@ -46,10 +48,15 @@ func printStartupMessage(endPoints []string) {
printServerCommonMsg(endPoints)
printCLIAccessMsg(endPoints[0])
printObjectAPIMsg()
objAPI := newObjectLayerFn()
if objAPI != nil {
printStorageInfo(objAPI.StorageInfo())
}
if certs, err := readCertificateChain(); err == nil {
printCertificateMsg(certs)
}
}
// Prints common server startup message. Prints credential, region and browser access.
@@ -147,3 +154,28 @@ func printStorageInfo(storageInfo StorageInfo) {
console.Println()
console.Println(getStorageInfoMsg(storageInfo))
}
// Prints certificate expiry date warning
func getCertificateChainMsg(certs []*x509.Certificate) string {
msg := colorBlue("\nCertificate expiry info:\n")
totalCerts := len(certs)
var expiringCerts int
for i := totalCerts - 1; i >= 0; i-- {
cert := certs[i]
if cert.NotAfter.Before(time.Now().Add(time.Hour * 24 * globalMinioCertExpireWarnDays)) {
expiringCerts++
msg += fmt.Sprintf(colorBold("#%d %s will expire on %s\n"), expiringCerts, cert.Subject.CommonName, cert.NotAfter)
}
}
if expiringCerts > 0 {
return msg
}
return ""
}
func printCertificateMsg(certs []*x509.Certificate) {
console.Println(getCertificateChainMsg(certs))
}