Tìm kiếm trang web

Theo dõi hết hạn chứng chỉ SSL/TLS của trang web với Zabbix


Chứng chỉ SSL (TLS) là một phần quan trọng của cơ sở hạ tầng hiện đại, vì vậy quản trị viên phải đảm bảo chúng không hết hạn và được gia hạn đúng thời hạn. Bài viết này hướng dẫn bạn cách sử dụng Zabbix để theo dõi các trang web của bạn xem chứng chỉ SSL hết hạn hay không.

Trong các phiên bản trước của Zabbix, để theo dõi thời hạn hết hạn của chứng chỉ SSL, bạn phải sử dụng tập lệnh bảng điều khiển chuyển giá trị cho Zabbix thông qua UserParameter. Zabbix Agent 2 cho phép bạn kiểm tra thông tin trên chứng chỉ bằng cách sử dụng plugin WebCertificate tích hợp sẵn. Bài viết này sẽ xem xét cả hai cách theo dõi việc hết hạn chứng chỉ SSL trong Zabbix.

Kiểm tra hết hạn chứng chỉ SSL bằng Plugin WebCertificate trên Zabbix

Zabbix Agent 2 bao gồm plugin WebCertificate tích hợp cho phép bạn kiểm tra thông tin chứng chỉ trang web. Kiểm tra xem phiên bản tác nhân này đã được cài đặt trên máy chủ chưa:

$ zabbix_agent2 -V

Bạn có thể sử dụng plugin WebCertificate để nhận thông tin về chứng chỉ của trang web trực tiếp từ bảng điều khiển bằng lệnh zabbix-get:

$ zabbix_get -s 127.0.0.1 -k web.certificate.get[a-d.site,443]

Lệnh sẽ trả về một đối tượng JSON chứa các thuộc tính của chứng chỉ cho trang Web đã chỉ định.

Mẫu tích hợp “Chứng chỉ trang web của đại lý Zabbix 2” có sẵn trong Zabbix. Sử dụng nó để kiểm tra ngày hết hạn chứng chỉ TLS/SSL.

  1. Đi tới Cấu hình -> Máy chủ và thêm máy chủ mới có tên trang web;

  2. Tạo một nhóm máy chủ mới hoặc chọn một nhóm hiện có;

  3. Gán mẫu Chứng chỉ trang web của đại lý Zabbix 2;

  4. Chỉ định địa chỉ IP hoặc tên của tác nhân Zabbix trong phần Giao diện (trong ví dụ của chúng tôi,

    127.0.0.1

    );

  5. Sau đó chuyển đến tab Macro và nhấp vào Macro được kế thừa và lưu trữ;

  6. bên trong

    {$CERT.WEBSITE.HOSTNAME}

    macro, chỉ định tên DNS của trang Web có chứng chỉ mà bạn muốn kiểm tra;

  7. Theo mặc định, cảnh báo Chứng chỉ SSL sắp hết hạn sẽ hiển thị 7 ngày trước ngày hết hạn. Bạn có thể tăng giá trị này bằng macro

    {$CERT.EXPIRY.WARN}

    ;

  8. Nếu trang web sử dụng cổng TLS/SSL khác 443, bạn có thể chỉ định cổng đó bằng macro

    {$CERT.WEBSITE.PORT}

    ;

  9. Lưu các thiết lập.

Zabbix hiện cảnh báo bạn khi chứng chỉ của trang web sắp hết hạn.

Theo dõi thời hạn hết hạn chứng chỉ HTTPS bằng tập lệnh trong Zabbix

Bạn có thể sử dụng các tập lệnh bên ngoài để truy xuất thông tin hết hạn chứng chỉ trong các phiên bản trước của Zabbix. Công cụ dòng lệnh openssl cho phép bạn trích xuất thông tin chứng chỉ trang web.

Tạo tệp tập lệnh bash /usr/lib/zabbix/externalscripts/sslcert_expiration.sh với mã sau::

#!/bin/bash
data=`echo | openssl s_client -servername $1 -connect $1:${2:-443} 2>/dev/null | openssl x509 -noout -enddate | sed -e 's#notAfter=##'`
ssldate=`date -d "${data}" '+%s'`
nowdate=`date '+%s'`
diff="$((${ssldate}-${nowdate}))"
echo $((${diff}/24/3600))

Cho phép tập lệnh chạy:

$ sudo chmod +x /usr/lib/zabbix/externalscripts/sslcert_expiration.sh

Tập lệnh này trả về số ngày còn lại cho đến khi chứng chỉ hết hạn. Kiểm tra xem tập lệnh có hoạt động chính xác không.

$ /usr/lib/zabbix/externalscripts/sslcert_expiration.sh a-d.site 443

Tập lệnh trả về rằng chứng chỉ của trang web có hiệu lực trong 79 ngày tiếp theo.

Bây giờ bạn phải cho phép Tác nhân Zabbix chạy tập lệnh bash tùy chỉnh này bằng tham số UserParameter.

$ sudo mcedit /etc/zabbix/zabbix_agent2.conf

Thêm vào :

UserParameter=sslcertexpire[*],/usr/lib/zabbix/externalscripts/sslcert_expiration.sh $1 $2

Sử dụng tập lệnh trong UserParameter, bạn cũng có thể kiểm tra ngày hết hạn của miền trong Zabbix.

Khởi động lại đại lý:

$ sudo service zabbix-agent2 restart

Kiểm tra xem tác nhân Zabbix có thể nhận dữ liệu thông qua tham số mới hay không. Bạn có thể sử dụng lệnh zabbix-get để kiểm tra phản hồi của tổng đài viên:

$ zabbix_get -s 127.0.0.1 -p 10050 -k sslcertexpire[a-d.site,443]

Bây giờ, hãy thêm mẫu mới CheckSSLCertExpiration để theo dõi việc hết hạn chứng chỉ HTTPS trong Zabbix.

Trong tab Mục, thêm tham số

  • Tên: Hiệu lực của chứng chỉ SSL còn lại

    {$DOMAINNAME}
  • Kiểu: Đại lý Zabbix

  • Chìa khóa:

    sslcertexpire[{$DOMAINNAME},{$SSL_PORT}]
  • Loại thông tin: Số (không dấu)

  • Khoảng thời gian cập nhật: 1 ngày

  • Lịch sử: 90d

  • Trenfd: 365d

Sau đó thêm một trình kích hoạt mới:

  • Tên: Chứng chỉ SSL cho

    {$DOMAINNAME}

    sắp hết hạn

  • Sự biểu lộ:

    last(/CheckSSLCertExpiration/sslcertexpire[{$DOMAINNAME},{$SSL_PORT}])<20
  • Mức độ nghiêm trọng: Cao

Trình kích hoạt này sẽ tạo cảnh báo nếu chỉ còn ít hơn 20 ngày trước khi chứng chỉ SSL hết hạn.

Bạn có thể thêm tham số kích hoạt khôi phục:

Recovery expression: last(/CheckSSLCertExpiration/sslcertexpire[{$DOMAINNAME},{$SSL_PORT}])>20

Bây giờ hãy thêm máy chủ mới vào Zabbix cho trang web của bạn với loại giao diện Đại lý.

Trong tab Macro, thêm hai tham số: tên máy chủ và cổng mà bạn muốn kiểm tra chứng chỉ SSL:

  • Vĩ mô:

    {$DOMAINNAME}
  • Giá trị:

    a-d.site

Và

  • Vĩ mô:

    {$SSL_PORT}
  • Giá trị:

    443

Gán mẫu CheckSSLCertExpiration đã tạo trước đó cho máy chủ.

Bây giờ hãy kiểm tra Dữ liệu mới nhất. Zabbix cho thấy chứng chỉ SSL của trang web sẽ hết hạn sau 79 ngày.

Để thông báo cho quản trị viên rằng Chứng chỉ SSL cần sớm được gia hạn, bạn có thể bật thông báo qua email hoặc tin nhắn.

Bài viết liên quan