天道酬勤,学无止境

Identityserver4 with azurewebsites.net domain - how to get ssl thumbprint

I want to host identity server 4 on azurewebsites.net https but I am not sure how to find ssl certificate of my someapp.azurewebsites.net sub domain so I can use it as thumbprint? Is that even possible to obtain ssl certificate that is running on your webapp on azurewebsites.net subdomain?

评论

Use self-signed certificates. Since Identity Server only uses the certs internally, it doesn't matter that they aren't signed by a trusted CA, you aren't presenting them to others. I store my signing certificates in Azure Key Vault as serialized Secrets. Key Vault is very inexpensive but you have to cache the results, it isn't meant for high traffic.

Remember to enable Managed Service Identity on the website, Function App, or whatever else is retrieving the values, and add those to the Key Vault SAS list with read-access to Secrets.

Powershell: Create Signing Certificate

[CmdletBinding()]
param(
    [Parameter(Mandatory=$true)][string]$password = "",
    [Parameter(Mandatory=$true)][string]$rootDomain = ""
)

$cwd = Convert-Path .
$sCerFile = "$cwd\token_signing.cer"
$sPfxFile = "$cwd\token_signing.pfx"
$vCerFile = "$cwd\token_validation.cer"
$vPfxFile = "$cwd\token_validation.pfx"

# abort if files exist
if((Test-Path($sPfxFile)) -or (Test-Path($sCerFile)) -or (Test-Path($vPfxFile)) -or (Test-Path($vCerFile)))
{
    Write-Warning "Failed, token_signing or token_validation files already exist in current directory."
    Exit
}

function Get-NewCert ([string]$name)
{
    New-SelfSignedCertificate `
        -Subject $rootDomain `
        -DnsName $rootDomain `
        -FriendlyName $name `
        -NotBefore (Get-Date) `
        -NotAfter (Get-Date).AddYears(10) `
        -CertStoreLocation "cert:CurrentUser\My" `
        -KeyAlgorithm RSA `
        -KeyLength 4096 `
        -HashAlgorithm SHA256 `
        -KeyUsage DigitalSignature, KeyEncipherment, DataEncipherment `
        -Type Custom,DocumentEncryptionCert `
        -TextExtension @("2.5.29.37={text}1.3.6.1.5.5.7.3.1")
}

$securePass = ConvertTo-SecureString -String $password -Force -AsPlainText

# token signing certificate
$cert = Get-NewCert("IdentityServer Token Signing Credentials")
$store = 'Cert:\CurrentUser\My\' + ($cert.ThumbPrint)  
Export-PfxCertificate -Cert $store -FilePath $sPfxFile -Password $securePass
Export-Certificate -Cert $store -FilePath $sCerFile
Write-Host "Token-signing thumbprint: " $cert.Thumbprint

# token validation certificate
$cert =  Get-NewCert("IdentityServer Token Validation Credentials")
$store = 'Cert:\CurrentUser\My\' + ($cert.ThumbPrint)  
Export-PfxCertificate -Cert $store -FilePath $vPfxFile -Password $securePass
Export-Certificate -Cert $store -FilePath $vCerFile
Write-Host "Token-validation thumbprint: " $cert.Thumbprint

Powershell: Upload Certificate to Azure Key Vault

[CmdletBinding()]
param(
    [Parameter(Mandatory=$true)][string]$password = "",
    [Parameter(Mandatory=$true)][string]$pfxFilename = "",
    [Parameter(Mandatory=$true)][string]$keyVaultName = "",
    [Parameter(Mandatory=$true)][string]$secretName = ""
)

$cwd = Convert-Path .
$pfxFile = "$cwd\$pfxFilename.pfx"

# abort when file not found
if(!(Test-Path($pfxFile)))
{
    Write-Warning "Failed, $pfxFilename.pfx not found $cwd"
    Exit
}

# force Azure login, if needed
function CheckLogin
{
    $needLogin = $true
    Try 
    {
        $content = Get-AzureRmContext
        if ($content) 
        {
            $needLogin = ([string]::IsNullOrEmpty($content.Account))
        } 
    } 
    Catch 
    {
        if ($_ -like "*Login-AzureRmAccount to login*") 
        {
            $needLogin = $true
        } 
        else 
        {
            throw
        }
    }

    if ($needLogin)
    {
        Login-AzureRmAccount
    }
}

CheckLogin

# load the PFX
$flag = [System.Security.Cryptography.X509Certificates.X509KeyStorageFlags]::Exportable
$coll = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2Collection 
$coll.Import($pfxFile, $password, $flag)

# export to byte array
$type = [System.Security.Cryptography.X509Certificates.X509ContentType]::Pkcs12
$bytes = $coll.Export($type)

# base64 encode
$base64 = [System.Convert]::ToBase64String($bytes)
$value = ConvertTo-SecureString -String $base64 -AsPlainText –Force

# send it to Azure KeyVault
$type = 'application/x-pkcs12'
Set-AzureKeyVaultSecret -VaultName $keyVaultName -Name $secretName -SecretValue $value -ContentType $type

Thread-Safe Key Vault Cache

public class KeyVaultCache
{
    private KeyVaultClient _KeyVaultClient = null;
    public KeyVaultClient KeyVaultClient
    {
        get
        {
            if(_KeyVaultClient is null)
            {
                var provider = new AzureServiceTokenProvider();
                _KeyVaultClient = new KeyVaultClient(new KeyVaultClient.AuthenticationCallback(provider.KeyVaultTokenCallback));
            }
            return _KeyVaultClient;
        }
    }

    private ConcurrentDictionary<string, string> SecretsCache = new ConcurrentDictionary<string, string>(StringComparer.OrdinalIgnoreCase);
    public async Task<string> GetCachedSecret(string secretName)
    {
        if(!SecretsCache.ContainsKey(secretName))
        {
            var secretBundle = await KeyVaultClient.GetSecretAsync($"{AzureUris.KeyVaultSecrets}{secretName}").ConfigureAwait(false);
            SecretsCache.TryAdd(secretName, secretBundle.Value);
        }
        return SecretsCache.ContainsKey(secretName) ? SecretsCache[secretName] : string.Empty;
    }
}

Retreival of Deserialized Certificates

public async Task<X509Certificate2> TokenValidationCertificate() => PfxStringToCert(await cache.GetCachedSecret("x509-token-validation"));
public async Task<X509Certificate2> TokenSigningCertificate() => PfxStringToCert(await cache.GetCachedSecret("x509-token-signing"));

private X509Certificate2 PfxStringToCert(string pfx)
{
    var bytes = Convert.FromBase64String(pfx);
    var coll = new X509Certificate2Collection();
    coll.Import(bytes, null, X509KeyStorageFlags.Exportable);
    return coll[0];
}

One way to use a self-signed certificate to use for token signing with IdentityServer4 is to store the certificate with the application under the 'wwwroot' folder.

You can use OpenSSL to generate a self-signed certificate.

openssl req -x509 -newkey rsa:4096 -sha256 -nodes -keyout example.key -out example.crt -subj "/CN=example.com" -days 3650

Then load the certificate in the 'Startup.cs' class/file.

public void ConfigureServices(IServiceCollection services)
{
        .....other code .....

        var fileName = Path.Combine(env.WebRootPath, "YOUR_FileName" );            

        if (!File.Exists(fileName))
        {
            throw new FileNotFoundException("Signing Certificate is missing!");
        }

        var cert = new X509Certificate2(fileName, "Your_PassPhrase" );

        services.AddIdentityServer().AddSigningCredential(cert)

        ...other code.....
}

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • 如何使用域帐户通过Python(pywinrm)中的WinRM连接到远程计算机?(How to connect to remote machine via WinRM in Python (pywinrm) using domain account?)
    问题 我想使用pywinrm库在Python中编写脚本,以便能够通过WinRM连接到远程计算机。 import winrm s = winrm.Session('MACHINEHOST', auth=('username@domain', 'password')) r = s.run_cmd('ipconfig', ['/all']) print r.status_code print r.std_out 当我使用本地用户时,脚本运行良好。 当我使用域用户时,会收到以下异常: winrm.exceptions.UnauthorizedError: 401 Unauthorized. 关于远程计算机上的WinRM配置: /Client/Auth/Basic = True /Client/TrustedHosts = * /Service/Auth/Basic = True /Service/AllowUnencrypted = True 您能否建议如何解决此问题? 谢谢你。 回答1 正如史蒂夫·巴恩斯(Steve Barnes)所说,您的用户应该使用kerberos来使用您的域帐户进行连接。 您首先需要为您的帐户设置一张kerberos票。 Windows会自动将其提供给您,但是在linux下,您将需要kinit。 使用klist查看您当前的票证和默认票证。 session =
  • .NetCore IdentityServer4 使用 https
    .NetCore项目中集成了IdentityServer4,初始时使用http,获取token及API授权访问都ok。后面.netcore配置Kestrel使用https访问接口,出现了各种问题。 System.Security.Authentication.AuthenticationException: The remote certificate is invalid according to the validation procedureSSL connection could not be established(The remote certificate is invalid according to the validation procedure) System.InvalidOperationException: IDX20803: Unable to obtain configuration from: '[PII is hidden]'. ---> System.IO.IOException: IDX20804: Unable to retrieve document from: '[PII is hidden]'. ---> System.Net.Http.HttpRequestException: The SSL connection could
  • Azure 是否为“cloudapp.net”提供 https?(Does Azure offer https for “cloudapp.net”?)
    问题 使用Azure网站的一大优势是我无需执行任何操作即可获得安全的 HTTP (HTTPS):我只需输入https://xyz.azurewebsites.net即可。 我不必担心证书,因为我使用 Azure 给我的子域(在示例中它是xyz ) 所以,我通常做的是人们通过我拥有的一些注册域来访问,例如。 http://www.my-application-homepage.com ,如果他们想使用我的应用程序,我会使用 HTTPS将他们重定向到azurewebsites.net的子域。 现在,话虽如此: 我需要升级到Azure 云服务或Azure 虚拟机,因为它们具有Azure 网站所没有的功能。 这两个还提供了一个免费的子域: xyz.cloudapp.net ,但我的问题是:我也会在那里获得 HTTPS 吗? 如何? 我在 google 中搜索了一些 cloudapp 示例,我测试的内容如下: 1) 通过 HTTP 连接(即输入http://xyz.cloudapp.net )。 结果:工作 2) 通过 HTTPS 连接(即输入https://xyz.cloudapp.net )。 结果:不起作用(chrome 给了ERR_CONNECTION_TIMED_OUT ) 回答1 不可以。截至今天, .cloudapp.net域不提供 HTTPS。 此外,由于您没有
  • WebAuthenticationBroker是否在Windows 8 Metro App发布候选版本中工作(Does the WebAuthenticationBroker work in Windows 8 Metro App post Release Candidate)
    问题 解决方案我的工作解决方案可以在答案中找到,也可以在我的更新二中找到。 1)现在,为了在localhost上进行测试,请确保已在localhost端口上为入站设置了Windows防火墙。 路由器上的端口转发(如果有)。 2)然后,您需要告诉IIS Express,该请求来自本地主机的本地站点是可以的:查找Documents \ IISExpress \ config并编辑applicationhost.config。 在列表中找到您的站点,然后从绑定中删除本地主机。 <site name="S-Innovations.TrafficTheory.Web2" id="1591449597"> <application path="/" applicationPool="Clr4IntegratedAppPool"> <virtualDirectory path="/" physicalPath="G:\Documents\Visual Studio 2012\Projects\S-Innovations.TrafficTheory\S-Innovations.TrafficTheory.Web2" /> </application> <bindings> <binding protocol="http" bindingInformation="*:909090:localhost
  • Easy Authentication and Authorization in Azure Function App using ARM template
    "Easy Authentication and Authorization" feature of Azure App Service works in my Azure Function app if I configure it manually. It does not work when I use an ARM Template. I used this web site to figure out the config values: https://docs.microsoft.com/en-us/dotnet/api/microsoft.azure.management.websites.models.siteauthsettings?view=azuremgmtwebsites-1.6.0-preview This is what it looks like, ideas? EDIT : after checking the resulting config at https://resources.azure.com I see that "siteAuthEnabled" and "siteAuthSettings" are not applied at all. Should they be specified somewhere else? {
  • asp.net mvc:如何将非www重定向到www,反之亦然(asp.net mvc: How to redirect a non www to www and vice versa)
    问题 我想将所有www流量重定向到非www流量 我已经将此复制到我的web.config <system.webServer> / <rewrite> / <rules> <rule name="Remove WWW prefix" > <match url="(.*)" ignoreCase="true" /> <conditions> <add input="{HTTP_HOST}" pattern="^www\.domain\.com" /> </conditions> <action type="Redirect" url="http://domain.com/{R:1}" redirectType="Permanent" /> </rule> 根据这篇文章 如何使用“ www” URL重定向到没有“ www” URL的重定向,反之亦然? 但我收到500个内部服务器错误。 回答1 您可能会考虑另一种方法: protected void Application_BeginRequest (object sender, EventArgs e) { if (!Request.Url.Host.StartsWith ("www") && !Request.Url.IsLoopback) { UriBuilder builder = new UriBuilder (Request
  • 如何删除Azure SSL绑定?(How to remove Azure SSL binding?)
    问题 我在Azure上有一个生产站点,带有按需付费订阅。 我也为此设置了两个自定义域名。 MySite.org和www.MySite.org 我的一些网站访问者正在通过HTTPS访问我的网站,尽管我从未打算使用HTTPS。 我不需要此站点的SSL。 他们得到一个令人震惊的浏览器警告:该网站的安全证书有问题。 我不知道他们为什么或如何使用HTTPS,但是无论如何,我应该能够从服务器端解决这个问题。 我想禁用SSL绑定,但是在Azure管理门户中找不到任何可以执行此操作的地方。 作为一种解决方法,我决定尝试使用URL重写规则将HTTPS定向到HTTP(通常是要重定向另一个方向。),但是证书警告仍然会在浏览器中触发,因为浏览器仍在处理HTTPS请求。首先,在重定向之前,先转到已设置SSL的网站。 啊。 我找到了这个: Windows Azure网站实际上已预先配置为可在SSL上运行,如果您不希望拥有自己的域,则可以立即使用SSL。 您只需要浏览一下即可! 在浏览器中,将前缀从HTTP://更改为HTTPS://,瞧! 您的站点将做出响应,并且您将与该站点建立安全连接。 但是,我们不建议使用此方法来保护敏感内容或应用程序的安全,因为所使用的通配符证书对于所有Azure网站都是通用的。 http://blogs.msdn.com/b/windowsazure/archive/2013/12
  • Powershell IIS7管理单元将SSL证书分配给https绑定(Powershell IIS7 Snap in Assign SSL certificate to https binding)
    问题 作为自动构建过程的一部分,我们使用Powershell脚本破坏和重建IIS站点。 一旦创建了AppPool,并且网站完成了绑定信息,我想为https绑定设置SSL证书。 我无法找到任何具体的例子来证明这一点。 有任何想法吗? 寻找仁慈的Powershell神... 回答1 您可以合并以前的示例,并在网站中创建https绑定。 import-module webadministration $computerName = $Env:Computername $domainName = $Env:UserDnsDomain New-WebBinding -Name "MyWebSite" -IP "*" -Port 443 -Protocol https Get-ChildItem cert:\LocalMachine\My | where { $_.Subject -match "CN\=$Computername\.$DomainName" } | select -First 1 | New-Item IIS:\SslBindings\0.0.0.0!443 回答2 这是简单的方法: 首先确定您要分配的证书并获得其指纹 例如,您的证书可能位于cert:\ LocalMachine \ Root中 您可以通过以下方式获取指纹: $thumb = (Get-ChildItem
  • Connect Azure Website to Xero Partner Application
    I'm integrating my app with Xero which requires two certificates. I uploaded them to Azure with help from this article, but I'm still unable to connect to the Xero API. I'm hoping someone has experience integrating a Xero Partner Application with an Azure Web App. I've uploaded two pfx files; one is a self-signed certificate and the other is the partner certificate issued by Xero. The latter pfx file contains two certificates; an Entrust Commercial Private Sub CA1 (whatever than means) and a unique Entrust Id certificate for my app. I'm using the following code to load the certificates by
  • Configuring Google Domain to point to Azure website
    I have an site hosted on Azure that I am trying to point a domain from Google Domains to. My current configuration is as follows: Name Type Data @ A XXX.XXX.XXX.XXX www CNAME history-podcasts.azurewebsites.net awverify CNAME awverify.history-podcasts.com I am following the instructions from here: Configuring a custom domain name for an Azure Website. When I go to the Azure portal to Manage Domain and attempt to enter the url in DOMAIN NAMES, I get the following message: A CNAME record pointing from history-podcasts.com to history-podcasts.azurewebsites.net was not found. Alternative record
  • How to set redirect_uri protocol to HTTPS in Azure Web Apps
    I am facing the following problem. I have an ASP Net Core 2 web app that I want to deploy to Azure. The app authentication is integrated with the Azure Active Directory, so when I try to login the following requests happen: GET https://login.microsoftonline.com/ecf3f643-27e5-4aa7-9d56-fd350e1e9c37/oauth2/authorize?client_id=20a2bcb5-0433-4bb4-bba3-d7dc4c533e85&redirect_uri=http://myapplication.mydomain.com/account/signin [...] 200 OK POST http://myapplication.mydomain.com/account/signin 301 Redirect --> https://myapplication.mydomain.com/account/signin GET https://myapplication.mydomain.com
  • 在 ASP.NET 自托管 Web API 上配置 SSL(Configuring SSL on ASP.NET Self-Hosted Web API)
    问题 我正在创建自托管 Web API 服务。 为了保护它,我研究并实现了这篇文章,使用 makecert 成功生成了本地 SSL 证书,并且我的服务经过身份验证并生成令牌很好,如果我正在使用 http://localhost/webapi/authentication/authenticate 链接,但是当我尝试使用 HTTPS 访问我的服务时,我在 Firefox 上得到以下信息: ssl_error_rx_record_too_long 对于 Fiddler 向我展示的相同请求: HTTP/1.1 502 Fiddler - 连接失败日期:2013 年 8 月 26 日星期一 10:44:27 GMT 内容类型:text/html; charset=UTF-8 连接:关闭时间戳:13:44:27.433 [Fiddler] 到 localhost 的套接字连接失败。 无法与 server.fiddler.network.https 协商 HTTPS 连接> 无法保护本地主机的现有连接。 由于意外的数据包格式,握手失败。 我的自托管配置: private HttpSelfHostServer _server; private ExtendedHttpsSelfHostConfiguration _config; public const string
  • 交换Azure Web App部署插槽将注销ASP.NET Core RC2中的所有用户(Swapping Azure Web App deployment slots logs out all users in ASP.NET Core RC2)
    问题 每当我更新以Azure Web App运行的ASP.NET Core RC2网站时,它都会注销所有用户。 这似乎与将登台部署槽交换到生产有关(我使用从VS到登台的Web部署,并将其设置为自动交换到生产)。 如果我直接更新生产版位可以,但是我不想这样做。 我不知道如何配置它,将不胜感激! 这是我现在配置的方式,我的网站仅允许直接登录(没有Facebook登录名等): 在启动中的ConfigureServices中 // found some post that said this would help... doesn't seem to work... services.AddDataProtection() .SetApplicationName("myweb"); services.AddIdentity<MyUser, MyRole>(options => { options.Cookies.ApplicationCookie.CookieDomain = settings.CookieDomain; // cookie domain lets us share cookies across subdomains options.Cookies.ApplicationCookie.LoginPath = new PathString("/account/login")
  • 如何还原丢失的IIS Express SSL证书?(How do I restore a missing IIS Express SSL Certificate?)
    问题 根据诸如此类的文章在IIS Express中设置HTTPS之后,我实际上无法使用HTTPS加载IIS Express站点。 在Chrome中,我只会得到: 该网页不可用(错误代码为“ ERR_CONNECTION_RESET”) ...而在IE中,我只会得到: Internet Explorer无法显示该网页 ...当我按照这些文章中的指示进行操作时。 看来这与IIS Express自动安装的“ IIS Express开发证书”已被删除有关。 如何重新安装此证书? 回答1 Windows 10用户:只能在“控制面板”中进行修复,而不能在“添加删除程序”应用中进行修复。 我通常运行appwiz.cpl来启动旧的控制面板小程序,并从那里运行修复程序。 Windows 7和8.1:在“添加/删除程序”并在IIS Express上选择“修复”选项后,证书已重新安装,我现在可以使用HTTPS启动IIS Express站点。 证书又回来了: 现在,我可以使用HTTPS启动IIS Express网站: 回答2 对于Visual Studio 2015,IIS Express 10,Windows 10,这些选项对我不起作用。 IIS Express 10没有修复选项。 我设法使用C:\Program Files (x86)\IIS Express的IisExpressAdminCmd
  • Windows Azure 网站的 SSL 证书 [关闭](SSL Certificate with Windows Azure Website [closed])
    问题 关闭。 此问题不符合 Stack Overflow 准则。 它目前不接受答案。 想改善这个问题吗? 更新问题,使其成为 Stack Overflow 的主题。 3年前关闭。 改进这个问题 我一直在使用新的 Windows Azure 网站预览版为客户构建网站。 我最近部署了这个站点,并将其移动到一个预留实例,以便我可以根据客户的要求为该站点配置一个自定义域。 到现在为止还挺好。 我的下一步是使用 SSL 证书保护站点。 我在 azure 网站(以及 stackoverflow)上搜索了很长时间,但找不到任何有关如何为保留的网站实例配置 SSL 证书的信息。 我已经看到许多使用 Web 角色(云服务)执行此操作的示例,但未针对保留网站执行此操作。 有谁知道这目前是否可行? 或者这可能是 azure 网站仍处于预览模式的原因之一? 更新:在 Azure 论坛上发现一个帖子,指出这在当前版本中是不可能的,但很快就会在未来版本中推出。 http://social.msdn.microsoft.com/Forums/en-US/windowsazurewebsitespreview/thread/4bf975e7-56c0-4a4d-bb6a-b9b82f0da469 回答1 我做了一个快速的谷歌并找到了这个链接。 它有一些有用的信息。 感谢@twomm,这里是情况的TLDR:
  • 在.NET的HttpWebRequest / Response中使用自签名证书(Using a self-signed certificate with .NET's HttpWebRequest/Response)
    问题 我正在尝试连接到使用自签名SSL证书的API。 我这样做是使用.NET的HttpWebRequest和HttpWebResponse对象。 我得到一个例外: 基础连接已关闭:无法建立SSL / TLS安全通道的信任关系。 我明白这意味着什么。 而且我明白为什么.NET认为它应该警告我并关闭连接。 但是在这种情况下,无论如何,我还是想连接到API,以防中间人攻击。 那么,如何为该自签名证书添加例外? 还是告诉HttpWebRequest / Response根本不验证证书的方法? 我该怎么做? 回答1 @Domster:可以,但是您可能希望通过检查证书哈希是否符合您的期望来增强安全性。 因此,扩展版本看起来像这样(基于我们正在使用的一些实时代码): static readonly byte[] apiCertHash = { 0xZZ, 0xYY, ....}; /// <summary> /// Somewhere in your application's startup/init sequence... /// </summary> void InitPhase() { // Override automatic validation of SSL server certificates. ServicePointManager
  • 如何在Azure Web Apps中将redirect_uri协议设置为HTTPS(How to set redirect_uri protocol to HTTPS in Azure Web Apps)
    问题 我正面临以下问题。 我有一个要部署到Azure的ASP Net Core 2 Web应用程序。 应用程序身份验证与Azure Active Directory集成在一起,因此当我尝试登录时会发生以下请求: GET https://login.microsoftonline.com/ecf3f643-27e5-4aa7-9d56-fd350e1e9c37/oauth2/authorize?client_id=20a2bcb5-0433-4bb4-bba3-d7dc4c533e85&redirect_uri=http://myapplication.mydomain.com/account/signin [...] 200 OK POST http://myapplication.mydomain.com/account/signin 301 Redirect --> https://myapplication.mydomain.com/account/signin GET https://myapplication.mydomain.com/account/signin 500 Internal Server Error 第一个GET是普通的Azure Active Directory登录请求。 请注意redirect_uri参数的协议为http 。
  • Powershell-在https绑定上设置SSL证书(Powershell - Set SSL Certificate on https Binding)
    问题 我正在尝试使用PowerShell在IIS站点上为自签名/本地证书设置SSL证书。 我创建证书: $newCert = New-SelfSignedCertificate -DnsName www.mywebsite.ru -CertStoreLocation cert:\LocalMachine\My 然后尝试设置SSL绑定: get-item cert:\LocalMachine\MY\$newCert.Thumbprint | new-item -path IIS:\SslBindings\0.0.0.0!443 如这篇文章所示:http://www.iis.net/learn/manage/powershell/powershell-snap-in-configuring-ssl-with-the-iis-powershell-snap-in 还显示在此处:Powershell IIS7管理单元将SSL证书分配给https绑定 我也尝试过: get-item cert:\LocalMachine\MY\$newCert.Thumbprint | new-item -path IIS:\SslBindings\*!443 无济于事,我没有在“编辑站点绑定”对话框中看到SSL证书设置。 有什么想法吗? 回答1 您必须将证书分配给特定站点。 您可以使用Get
  • ASP.NET5, MVC 6 Cookies not being shared across sites
    I have an ASP.NET5/MVC6 website and a corresponding OData Service both hosted on azure. As an experiment I am attempting to set a cookie on the website (xxxportal.azurewebsites.net) and access the cookie in the OData Service (xxxservice.azurewebsites.net). I am setting the cookie in the AccountController with the following code. Response .Cookies .Append( "MyCookie", "MyCookieValue", new Microsoft.AspNet.Http.CookieOptions { Domain = "azurewebsites.net", Path="/", HttpOnly = true, Expires = DateTime.MaxValue }); When I run Fiddler I can see that the cookie is set. HTTP/1.1 302 Found Cache
  • 来自控制台应用程序的HTTPS?(HTTPS from a console application?)
    问题 我没有使用IIS,它也没有安装在这台计算机上。 在控制台托管的WCF REST服务中,我也没有任何app.config文件或web.config文件。 但是我想尝试让HTTPS在主机控制台应用程序上运行: class Program { static void Main(string[] args) { string baseAddress = "http://" + Environment.MachineName + ":8000/Service"; ServiceHost host = new ServiceHost(typeof(Service), new Uri(baseAddress)); //WebHttpBinding binding = new WebHttpBinding(); //binding.Security.Mode = WebHttpSecurityMode.Transport; host.AddServiceEndpoint(typeof(IService), new WebHttpBinding(), "").Behaviors.Add(new WebHttpBehavior()); host.Open(); Console.WriteLine("Host opened"); Console.ReadLine()