首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >思想结构指南IdentityServer v3 -证书

思想结构指南IdentityServer v3 -证书
EN

Stack Overflow用户
提问于 2014-10-30 13:17:24
回答 1查看 7.9K关注 0票数 20

我正在制作Thinktecture v3的演示。其意图是让身份服务器作为自己的网站在Azure网站下运行。

还有其他(多个) Azure网站将使用身份服务器对用户进行身份验证。

基于入门演练(请参阅https://github.com/thinktecture/Thinktecture.IdentityServer.v3/wiki/Getting-started),我的大部分工作都完成了。

我遇到麻烦的地方是证书。

对于演示,我想创建我自己的证书-但我不确定我需要做什么。任何指导都会有帮助。

我对此还有其他问题:

  1. 可以使用自签名证书吗?
  2. 在生产场景中,自签名证书是可以接受的,还是真的需要由受信任的根授权机构签名?
  3. 如何将这些证书安装到Azure网站(或者我可以从磁盘加载)
EN

回答 1

Stack Overflow用户

发布于 2015-08-13 01:01:00

扩展到最低特权答案时,我认为“正确”的方法是将它们安装在Azure信任存储中,但在我的例子中,我是从嵌入式资源中提供它们的,如idsrv3示例所示。

以下是一些对我有用的细节。创建自签名证书:

代码语言:javascript
复制
        "C:\Program Files (x86)\Windows Kits\8.1\bin\x64\makecert.exe" -r -pe -n "CN=MyAppIdentity" -sky signature MyApp.cer -sv MyApp.pvk
        "C:\Program Files (x86)\Windows Kits\8.1\bin\x64\pvk2pfx.exe" -pvk MyApp.pvk -spc MyApp.cer -pfx MyApp.pfx -pi MyPassword -po MyPassword

尽管有pvk2pfx.exe文档,但我发现,如果不提供-po,那么pfx将不会保留与pvk和X509Certificate2()密码问题相同的密码。

对于我来说,idsrv3示例证书在蔚蓝上工作得很好,使用了idsrv3示例代码:

代码语言:javascript
复制
        var assembly = typeof(Certificate).Assembly;
        using (var stream = assembly.GetManifestResourceStream("MyCompany.Identity.Website.Config.idsrv3test.pfx"))
        {
            return new X509Certificate2(ReadStream(stream), "idsrv3test");
        }

然而,当我制作我自己的证书时,它在使用上面代码的本地测试中工作得很好,但是在Azure上,我必须添加一些额外的标志才能使它工作。我不一定确定使用这些工具的含义,但它们确实有效,所以这是一个开始:

代码语言:javascript
复制
        using (var stream = assembly.GetManifestResourceStream("MyCompany.Identity.Website.Config.MyApp.pfx"))
        {
            return new X509Certificate2(ReadStream(stream), 
                "MyPassword", 
                X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.PersistKeySet | X509KeyStorageFlags.Exportable);
        }
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26654056

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档