Điều này làm việc cho tôi:
$url = "//www.google.com";
$orignal_parse = parse_url[$url, PHP_URL_HOST];
$get = stream_context_create[array["ssl" => array["capture_peer_cert" => TRUE]]];
$read = stream_socket_client["ssl://".$orignal_parse.":443", $errno, $errstr,
30, STREAM_CLIENT_CONNECT, $get];
$cert = stream_context_get_params[$read];
$certinfo = openssl_x509_parse[$cert['options']['ssl']['peer_certificate']];
echo '';
print_r[$certinfo];
echo '
';
SSL tốt hết thời gian trong Fild này
[validTo_time_t] => 1523164135 // expire time.
Chuyển đổi ngày & giờ
$valid_from = date[DATE_RFC2822,$certinfo['validFrom_time_t']];
$valid_to = date[DATE_RFC2822,$certinfo['validTo_time_t']];
echo "Valid From: ".$valid_from."
";
echo "Valid To:".$valid_to."
";
Result:
Có giá trị từ: Thứ Hai, 09 tháng 10 năm 2017 07:00:00 +0700 hợp lệ đến: Thứ tư, ngày 10 tháng 10 năm 2018 06:59:59 +0700
Một tập lệnh PHP đơn giản để kiểm tra hết hạn của chứng chỉ SSL.sslcheck
Yêu cầu
- PHP [bao gồm hỗ trợ CLI].
- OpenSSL
Kịch bản này chỉ được thử nghiệm trên Ubuntu 16.04+ bằng Php7.
Cách sử dụng
- Clone repo này hoặc đơn giản là tải xuống tệp
sslcheck
. - Đảm bảo tệp
sslcheck
có thể thực thi [____10]. - Thực thi tập lệnh
1.[validTo_time_t] => 1523164135 // expire time.
Nếu bạn không thể thực thi tập lệnh trực tiếp, bạn có thể cần phải biểu hiện tập lệnh thông qua PHP [
[validTo_time_t] => 1523164135 // expire time.
2];Bạn có thể kiểm tra nhiều miền bằng cách liệt kê tất cả chúng khi chạy tập lệnh:
sslcheck www.google.com www.example.com www.github.com
Nếu một miền được tìm thấy có nhiều bản ghi A hoặc AAAA thì mỗi tên sẽ được kiểm tra riêng lẻ và IP sẽ được hiển thị cùng với miền trong đầu ra.
Sử dụng qua email
Tệp
[validTo_time_t] => 1523164135 // expire time.
3 là một tập lệnh đơn giản cho thấy cách này có thể được sử dụng qua email. Chỉ cần đọc các nhận xét ở đầu tập lệnh và thay đổi các biến cấu hình để thiết lập nó. Nếu lệnh [validTo_time_t] => 1523164135 // expire time.
4 không có sẵn trên hệ thống của bạn, bạn có thể cần cài đặt nó [Ubuntu: [validTo_time_t] => 1523164135 // expire time.
5]. Một ý tưởng tốt sẽ là thiết lập điều này như một công việc cron để gửi một báo cáo hàng tuần. Ôi trời là công cụ giám sát tất cả trong một cho toàn bộ trang web của bạn. Chúng tôi theo dõi thời gian hoạt động, chứng chỉ SSL, liên kết bị hỏng, các tác vụ theo lịch trình và nhiều hơn nữa. Bạn sẽ nhận được một thông báo cho chúng tôi khi có điều gì đó không ổn. Tất cả những gì kết hợp với một API thân thiện với nhà phát triển và tài liệu kick-ass. O, và bạn cũng sẽ có thể tạo một trang trạng thái công khai trong một phút. Bắt đầu theo dõi bằng cách sử dụng bản dùng thử miễn phí của chúng tôi ngay bây giờ.
Liên kết - ngày 28 tháng 7 năm 2016
Với vani PHP, có thể kiểm tra xem chứng chỉ SSL của một trang web nhất định có hợp lệ hay không. Nhưng thật là điên rồ khi làm điều đó. Chúng ta hãy xem mã cần thiết:
// Step 1: downloading the certificate from the site
$streamContext = stream_context_create[[
'ssl' => [
'capture_peer_cert' => true,
],
]];
$client = stream_socket_client[
"ssl://spatie.be:443",
$errorNumber,
$errorDescription,
$timeout,
STREAM_CLIENT_CONNECT,
$streamContext];
$response = stream_context_get_params[$client];
$certificateProperties = openssl_x509_parse[$response['options']['ssl']['peer_certificate']];
// Step 2: parsing the certificate
/*
* I'm not even going to type out the further code needed.
*
* `$certificateProperties` has two keys `validFrom_time_t` and `validTo_time_t`.
* Those keys contain the UTC representation of the date.
* You will need to check if the current date is between those dates.
*/
Gì. Các. Thật sự. F. Hãy sửa cái này!
Chúng tôi đã phát hành một gói mới có tên Spatie/SSL chứng nhận giúp kiểm tra chứng chỉ SSL của một trang web dễ cười. Hãy xem mã:
$certificate = SslCertificate::createForHostName['spatie.be'];
$certificate->isValid[]; // returns true if the certificate is currently valid
Boom, thực hiện.
Gói có thêm một vài phương pháp làm cho việc làm việc với chứng chỉ SSL trở nên dễ dàng:
$certificate->getIssuer[]; // returns "Let's Encrypt Authority X3"
$certificate->getDomain[]; // returns "spatie.be"
//A certificate can cover multiple [sub]domains. Here's how to get them.
$certificate->getAdditionalDomains[]; // returns ["spatie.be", "www.spatie.be]
$this->certificate->validFromDate[]; // returns an instance of Carbon
$certificate->getExpirationDate[]; // returns an instance of Carbon
Bạn cũng có thể sử dụng
[validTo_time_t] => 1523164135 // expire time.
6 để xác định xem một miền nhất định có được bảo vệ bởi chứng chỉ hay không. Tất nhiên, nó sẽ tiếp tục kiểm tra xem dữ liệu hiện tại có nằm trong khoảng từ [validTo_time_t] => 1523164135 // expire time.
7 đến [validTo_time_t] => 1523164135 // expire time.
8 hay không.$this->certificate->isValid['spatie.be']; // returns true
$this->certificate->isValid['laravel.com']; // returns false
Mã nguồn của gói có sẵn trên GitHub. Công ty của tôi đã thực hiện nhiều gói Agnostic, Laravel và JavaScript hơn của Framework Framework trong quá khứ. Hãy xem trang nguồn mở tại trang web của chúng tôi để xem liệu chúng tôi có làm bất cứ điều gì có thể sử dụng cho bạn không.
Theo dõi tôi trên Twitter. Tôi thường xuyên tweet ra các mẹo lập trình và những gì bản thân tôi đã học được trong các dự án đang diễn ra.
Mỗi tháng tôi gửi một bản tin chứa rất nhiều thứ thú vị cho nhà phát triển PHP hiện đại.
Mong đợi các mẹo & thủ thuật nhanh, hướng dẫn thú vị, ý kiến và gói. Bởi vì tôi làm việc với Laravel mỗi ngày, có một sự nhấn mạnh vào khuôn khổ đó.
Hãy yên tâm rằng tôi sẽ chỉ sử dụng địa chỉ email của bạn để gửi cho bạn bản tin và sẽ không sử dụng nó cho bất kỳ mục đích nào khác.