繁体   English   中英

如何查看IIS上是否使用https证书运行的站点

[英]How to see if site on IIS running with https certificate

说我有两台服务器。 一个使用https证书运行,另一个则没有。 访问我的网站之一的用户键入http。 如果该站点指向具有https证书的服务器,则我要重定向用户/重写url。

剩下的只有一件事。 如何检查我的网站是否获得了证书? 还是如果绑定是https?

void Application_BeginRequest(object sender, EventArgs e)
{
    var path = HttpContext.Current.Request.Url.AbsolutePath;
    var variableToSeeIfIISSiteRunningOnCertificate = true;
    if (variableToSeeIfIISSiteRunningOnCertificate && !HttpContext.Current.Request.IsSecureConnection && !string.IsNullOrEmpty(path) && path.ToLower().Contains("loginpage.aspx"))
    {
        HttpContext.Current.Response.Redirect(HttpContext.Current.Request.Url.AbsoluteUri.Replace("http://", "https://"));
    }
}
using System.Security;
using System.Security.Cryptography;
using System.Security.Cryptography.X509Certificates;

public bool HasValidCertificate(url){
    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
    HttpWebResponse response = (HttpWebResponse)request.GetResponse();
    response.Close();
    X509Certificate cert = request.ServicePoint.Certificate;
    X509Certificate2 cert2 = new X509Certificate2(cert);
    string cn = cert2.GetIssuerName();
    string cedate = cert2.GetExpirationDateString();
    string cpub = cert2.GetPublicKeyString();

    return !string.IsNullOrEmpty(cn) && cedate > DateTime.Now && !string.IsNullOrEmpty(cpub);
}

尚未测试,但应该对如何做有一些见解。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM