Hướng dẫn kiểm tra ngày hết hạn chứng chỉ TLS / SSL từ dòng lệnh

Cách kiểm tra ngày hết hạn chứng chỉ TLS / SSL từ dòng lệnh

Để kiểm tra ngày hết hạn chứng chỉ SSL, chúng tôi sẽ sử dụng máy khách dòng lệnh OpenSSL. Ứng dụng khách OpenSSL cung cấp rất nhiều dữ liệu, bao gồm ngày hiệu lực, ngày hết hạn, ai đã cấp chứng chỉ TLS / SSL, v.v.

Kiểm tra ngày hết hạn của chứng chỉ SSL hoặc TLS

Mở ứng dụng Terminal rồi chạy lệnh sau:

$ openssl s_client -servername {SERVER_NAME} -connect {SERVER_NAME}:{PORT} | openssl x509 -noout -dates
$ echo | openssl s_client -servername {SERVER_NAME} -connect {SERVER_NAME}:{PORT} | openssl x509 -noout -dates
Hãy để chúng tôi tìm hiểu ngày hết hạn cho www.nixcraft.com, đi vào:
DOM="www.nixcraft.com"
PORT="443"
openssl s_client -servername $DOM -connect $DOM:$PORT 
| openssl x509 -noout -dates

Kết quả đầu ra mẫu cho biết ngày tháng và các thông tin khác:

depth=2 O = Digital Signature Trust Co., CN = DST Root CA X3
verify return:1
depth=1 C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3
verify return:1
depth=0 CN = www.nixcraft.com
verify return:1
notBefore=Sep 29 23:10:07 2020 GMT
notAfter=Dec 28 23:10:07 2020 GMT
Thêm lệnh echođể tránh nhấn CTRL + C. Ví dụ:
DOM="www.cyberciti.biz"
PORT="443"
## note echo added ##
echo | openssl s_client -servername $DOM -connect $DOM:$PORT 
| openssl x509 -noout -dates

OpenSSL đang hoạt động: Kiểm tra ngày và giờ hết hạn chứng chỉ TLS / SSL

Hiểu các tùy chọn lệnh openssl

Openssl là một công cụ chẩn đoán rất hữu ích cho các máy chủ TLS và SSL. Các tùy chọn dòng lệnh openssl như sau:

s_client : Lệnh s_client triển khai một máy khách SSL / TLS chung kết nối với máy chủ từ xa bằng SSL / TLS.

-servername $DOM : Đặt phần mở rộng TLS SNI (Chỉ báo tên máy chủ) trong thông báo ClientHello thành giá trị đã cho.

-connect $DOM:$PORT : Điều này chỉ định máy chủ ($DOM) và cổng tùy chọn ($PORT) để kết nối với.

x509 : Chạy tiện ích hiển thị và ký chứng chỉ.

-noout : Ngăn đầu ra của phiên bản được mã hóa của chứng chỉ.

-dates : In ra ngày bắt đầu và ngày hết hạn của chứng chỉ TLS hoặc SSL.

Tìm ngày hết hạn chứng chỉ SSL từ tệp chứng chỉ được mã hóa PEM

Cú pháp như sau truy vấn tệp chứng chỉ về thời điểm chứng chỉ TLS / SSL sẽ hết hạn

$ openssl x509 -enddate -noout -in {/path/to/my/my.pem}
$ openssl x509 -enddate -noout -in /etc/nginx/ssl/www.cyberciti.biz.fullchain.cer.ecc
$ openssl x509 -enddate -noout -in /etc/nginx/ssl/www.nixcraft.com.fullchain.cer
notAfter=Dec 29 23:48:42 2020 GMT
Chúng tôi cũng có thể kiểm tra xem chứng chỉ có hết hạn trong khung thời gian nhất định hay không. Ví dụ: tìm hiểu xem chứng chỉ TLS / SSL có hết hạn trong vòng 7 ngày tới (604800 giây) hay không:
$ openssl x509 -enddate -noout -in my.pem -checkend 604800
# Check if the TLS/SSL cert will expire in next 4 months #
openssl x509 -enddate -noout -in my.pem -checkend 10520000 

Tìm hiểu xem chứng chỉ TLS / SSL đã hết hạn hay sẽ hết hạn trong vòng N ngày tới chỉ trong vài giây.

Tập lệnh Shell để xác định ngày hết hạn chứng chỉ SSL từ chính tệp crt và cảnh báo sysadmin

Đây là một tập lệnh shell mẫu:

#!/bin/bash
# Purpose: Alert sysadmin/developer about the TLS/SSL cert expiry date in advance
# Author: Vivek Gite {https://www.cyberciti.biz/} under GPL v2.x+
# -------------------------------------------------------------------------------
PEM="/etc/nginx/ssl/letsencrypt/cyberciti.biz/cyberciti.biz.fullchain.cer"
 
# 7 days in seconds 
DAYS="604800" 
 
# Email settings 
_sub="$PEM will expire within $DAYS (7 days)."
_from="[email protected]"
_to="[email protected]"
_openssl="/usr/bin/openssl"
$_openssl x509 -enddate -noout -in "$PEM"  -checkend "$DAYS" | grep -q 'Certificate will expire'
 
# Send email and push message to my mobile
if [ $? -eq 0 ]
then
    echo "${_sub}"
        mail -s "$_sub" -r "$_from" "$_to" <<< "Warning: The TLS/SSL certificate ($PEM) will expire soon on $HOSTNAME [$(date)]"
        # See https://www.cyberciti.biz/mobile-devices/android/how-to-push-send-message-to-ios-and-android-from-linux-cli/ #
        source ~/bin/cli_app.sh
        push_to_mobile "$0" "$_sub. See $_to email for detailed log. -- $HOSTNAME " >/dev/null
#!/bin/bash
# Purpose: Alert sysadmin/developer about the TLS/SSL cert expiry date in advance
# Author: Vivek Gite {https://www.cyberciti.biz/} under GPL v2.x+
# -------------------------------------------------------------------------------
PEM="/etc/nginx/ssl/letsencrypt/cyberciti.biz/cyberciti.biz.fullchain.cer"
 
# 7 days in seconds 
DAYS="604800" 
 
# Email settings 
_sub="$PEM will expire within $DAYS (7 days)."
_from="[email protected]"
_to="[email protected]"
_openssl="/usr/bin/openssl"
$_openssl x509 -enddate -noout -in "$PEM"  -checkend "$DAYS" | grep -q 'Certificate will expire'
 
# Send email and push message to my mobile
if [ $? -eq 0 ]
then
    echo "${_sub}"
        mail -s "$_sub" -r "$_from" "$_to" <<< "Warning: The TLS/SSL certificate ($PEM) will expire soon on $HOSTNAME [$(date)]"
        # See https://www.cyberciti.biz/mobile-devices/android/how-to-push-send-message-to-ios-and-android-from-linux-cli/ #
        source ~/bin/cli_app.sh
        push_to_mobile "$0" "$_sub. See $_to email for detailed log. -- $HOSTNAME " >/dev/null
fi
Xem cách gửi thông báo đẩy tới điện thoại của bạn từ tập lệnh. Tất nhiên, bạn cần một máy chủ SMTP hoạt động để định tuyến email. Tại nơi làm việc, chúng tôi đã định cấu hình AWS SES với Postfix MTA để định tuyến tất cả các email cảnh báo.

Nói xin chào với tập lệnh testssl và ssl-cert-check

Chúng ta có thể sử dụng trình bao testssl kịch bản, là một công cụ dòng lệnh miễn phí kiểm tra dịch vụ của máy chủ trên bất kỳ cổng nào để hỗ trợ mật mã TLS / SSL, giao thức cũng như các lỗ hổng mật mã gần đây và hơn thế nữa. Tải xuống và chạy nó như sau:

$ wget https://testssl.sh/testssl.sh
$ chmod +x testssl.sh
$ testssl.sh --fast --parallel https://www.cyberciti.biz/
Một tùy chọn khác là chạy ssl-cert-check kịch bản, là một tập lệnh shell Bourne có thể được sử dụng để báo cáo về các chứng chỉ SSL sắp hết hạn. Tập lệnh được thiết kế để chạy từ cron và có thể cảnh báo qua e-mail hoặc cảnh báo nhật ký thông qua nagios.

Phần kết luận

Trong hướng dẫn nhanh này, bạn đã học cách tìm ngày hết hạn chứng chỉ TLS / SSL từ tệp chứng chỉ được mã hóa PEM, bao gồm tên DNS thực. Chứng chỉ TLS / SSL hết hạn có thể gây ra thời gian chết và nhầm lẫn cho người dùng cuối. Do đó, điều quan trọng là phải theo dõi ngày hết hạn của chứng chỉ TLS / SSL của chúng tôi. Xem các trang người đàn ông sau:

$ man x509
$ man s_client



Hướng dẫn cách lấy mũi taro bị gãy khi đang gia công
Hướng dẫn cách lấy mũi taro bị gãy khi đang gia công
24-03-2021, 13:45, How To
Một số hình thức kiếm tiền online tại nhà cần tránh xa
Một số hình thức kiếm tiền online tại nhà cần tránh xa
12-11-2020, 18:12, How To
Hướng dẫn đơn giản để kiểm tra cấu hình máy tính, laptop không cần phần mềm
Hướng dẫn đơn giản để kiểm tra cấu hình máy tính, laptop không cần phần mềm
03-11-2020, 17:07, How To
Hướng dẫn khắc phục sự cố nếu Internet của bạn được kết nối nhưng không hoạt động
Hướng dẫn khắc phục sự cố nếu Internet của bạn được kết nối nhưng không hoạt động
06-09-2020, 20:08, How To
Hướng dẫn khôi phục dữ liệu từ thẻ SD bị hỏng
Hướng dẫn khôi phục dữ liệu từ thẻ SD bị hỏng
06-09-2020, 20:02, How To
NetTime v3.14 - Phần Mềm Tự Động Cập Nhật Ngày Giờ Máy Tính
NetTime v3.14 - Phần Mềm Tự Động Cập Nhật Ngày Giờ Máy Tính
24-05-2020, 11:00, Software
Movie

Briefly about the rules for publishing comments!

1. No insults, obscenities, explicit advertising.

2. More than 15 characters.

3. DO NOT WRITE: thanks, update, there is a new version, links do not work. There are buttons for such things: THANKS! and UPDATE!

Before publishing, we recommend you to read our rules! If violated, your comment is deleted without notification.

 

No comments yet!! @Guest, would you like to be the first to comment?

Direct Link Generator
Who's OnlineLoading...
Online: 882
Members: 861
Customers: 21