【问题标题】:How to validate an SSL Certificate如何验证 SSL 证书
【发布时间】:2015-12-01 22:13:41
【问题描述】:

我有一个表格,用户可以输入他们的 SSL 证书副本。用户倾向于只输入 cmets 而不是实际的证书。我可以使用什么正则表达式语法来确保他们输入有效的证书?

【问题讨论】:

  • 看一看。它应该以包含大量连字符和 BEGIN CERTIFICATE 字样的行开头。
  • 我意识到...我不是正则表达式专家;因此我寻求正则表达式语法帮助的原因
  • 为什么不使用this 之类的东西来验证 SSL 证书?
  • 您不需要正则表达式。您只需要检查该页眉和页脚(如果您愿意)。一个正则表达式将是标题行,然后是.*,然后是页脚行。但是没有正则表达式可以完全验证证书。这不是那种问题。
  • 表单域实际上是WHMCS的一部分,所以配置是在其中完成的。我可以向该字段添加一个正则表达式,WHMCS 将对其进行验证。话虽这么说......我不能添加一堆额外的代码。

标签: regex ssl ssl-certificate


【解决方案1】:

以下正则表达式将帮助您验证 WHMCS 中需要有效证书结构的自定义字段。

/^(?:(?!-{3,}(?:BEGIN|END) CERTIFICATE)[\s\S])*(-{3,}BEGIN CERTIFICATE(?:(?!-{3,}END CERTIFICATE)[\s\S])*?-{3,}END CERTIFICATE-{3,})(?![\s\S]*?-{3,}BEGIN CERTIFICATE[\s\S]+?-{3,}END CERTIFICATE[\s\S]*?$)/

只需将其粘贴到 Validation 字段中即可。

我修改了the answer to this question上的正则表达式。

如果您有一个需要证书签名请求的自定义字段,也可以使用该问题的正则表达式:

/^(?:(?!-{3,}(?:BEGIN|END) NEW CERTIFICATE REQUEST)[\s\S])*(-{3,}BEGIN NEW CERTIFICATE REQUEST(?:(?!-{3,}END NEW CERTIFICATE REQUEST)[\s\S])*?-{3,}END NEW CERTIFICATE REQUEST-{3,})(?![\s\S]*?-{3,}BEGIN NEW CERTIFICATE REQUEST[\s\S]+?-{3,}END NEW CERTIFICATE REQUEST[\s\S]*?$)/

【讨论】:

    【解决方案2】:

    我可以使用什么正则表达式语法来确保他们输入的是有效证书?

    没有。证书的有效性取决于到期日期、数字签名的完整性以及签名者自己证书的有效性。没有正则表达式可以检查所有这些。

    另一方面,如果您只是想拒绝彻底的垃圾,请在您的问题下查看我的 cmets。

    【讨论】:

    • 我只是想限制彻底的垃圾......根据我上面的评论,由于必须使用 WHMCS,我必须使用正则表达式并且无法创建自定义代码
    猜你喜欢
    • 2022-01-09
    • 2017-06-13
    • 2019-03-29
    • 2021-02-08
    • 2010-09-16
    • 1970-01-01
    • 2014-09-24
    • 1970-01-01
    相关资源
    最近更新 更多