您如何跟踪客户的托管/域/ SSL证书到期日期?

时间:2008-12-12 02:02:11

标签: hosting dns certificate ssl-certificate

本身不是编程问题,但对于进行商业网站开发的人来说很有意思。

如何跟踪所有客户的托管,域名注册和SSL证书到期日期?

您是仅保留电子表格还是有一些有用的软件?

我进行了广泛的搜索,找不到可用的软件,我很想写点什么。有超过100个客户需要管理,并且托管和域名分布在多家托管公司和注册商之间,我的临时手段都失败了。

5 个答案:

答案 0 :(得分:2)

我们怎么把它变成编程问题!您可以使用此代码(C#),但我建议稍微修改它(例如将url放在文件中)并将其投入服务。

此代码设置一个证书验证回调,HttpWebRequest会在遇到证书时调用它。这让我们看一下证书,通常这用于验证证书,但我们将查看到期时间,如果在3个月内我们将发送电子邮件给自己。设置计时器以每天运行一次检查。

using System.Net;
using System.Diagnostics;
using System.Net.Mail;
using System.Threading;

static void Main(string[] args)
{
    // List of URL's to check
    string[] urls = new string[]{
        "https://www.6bit.com/",
        "https://www.google.com/"
    };

    HttpWebRequest req = null;

    // Certificate check callback
    ServicePointManager.ServerCertificateValidationCallback = (state, cert, certChain, sslerr) =>
    {
        DateTime expiration = DateTime.Parse(cert.GetExpirationDateString());
        if (expiration < DateTime.Now.AddMonths(3))
        {
            Debug.WriteLine("Cert expiring on " + expiration.ToShortDateString());
            MailMessage msg = new MailMessage("SSLCheck@example.com", "josh@example.com", "SSL Certificate Expiring", "The ssl certificate for" + req.RequestUri.ToString() + " will expire on " + expiration.ToShortDateString());
            SmtpClient sc = new SmtpClient();
            sc.Send(msg);
        }

        return true;
    };

    // Request each url once a day so that the validation callback runs for each
    Timer t = new Timer(s =>
    {
        Array.ForEach(urls, url =>
        {
            try
            {
                req = (HttpWebRequest)HttpWebRequest.Create(url);
                HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
                resp.Close();
            }
            catch (Exception ex)
            {
                Debug.WriteLine("Error checking site: " + ex.ToString());
            }
        });
    }, null, TimeSpan.FromSeconds(0), TimeSpan.FromDays(1));  // Run the timer now and schedule to run once a day
}

答案 1 :(得分:1)

您可能最好使用通常用于管理时间/日程安排的任何工具而不是使用某种专用工具。无论是Outlook,Sunbird,Lightning,PDA,手机,纸质日历等,只需使用通常用于跟踪日期的任何工具。

[ADDITION]

详细说明,您希望它与其他重要日期在同一个地方的原因是它确保(至少一点点)您注意列表。如果你正在使用其他类型的程序,那么很容易忙碌几周,忘记查看你的特殊工具,最终让某些东西过期而不会过期。

答案 2 :(得分:1)

关于管理SSL证书,您可以编写一个调用OpenSSL的脚本,或者如果您想要一些现成的东西,您可以试试这个:

SSL Certificate Discovery and Monitoring Tool

它将在您的网络上查找和编目证书,并在它们即将到期时发送电子邮件警报。结果可以导入到名为Cert Center的基于Web的工具中。

答案 3 :(得分:0)

尝试epazote基本上你可以在yaml文件上创建一个站点(服务)列表,并在证书到期之前收到电子邮件/警报/ hipchat通知,例如:

services:
    google:
        url: https://www.google.com
        seconds: 60
        expect:
            status: 302
            ssl:
                hours: 72

在这种情况下,可以在证书到期前72小时发送电子邮件。

此处有更多详情:https://epazote.io/post/how-to-use-it/

答案 4 :(得分:0)

您可以使用https://IsItWorking.info之类的服务来跟踪域名注册和SSL证书过期。

您可以设置何时收到通知(例如到期前60天),并且可以通过电子邮件,闲置或推卸通知您。

(完全披露:我写了!)