热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Certenroll在Azure上生成自签名证书

我已经使用Certenroll(CERTENROLLLib)构建了一个创建自

我已经使用 Certenroll CERTENROLLLib )构建了一个创建自签名证书。所有这些都在本地运行,但是一旦我部署 Azure ,我就会得到:


  

服务器API错误:消息:
  CertEnroll :: CX509Enrollment :: _ CreateRequest:访问被拒绝。
  0x80070005(WIN32:5 ERROR_accESS_DENIED),StackTrace:在
  CERTENROLLLib.IX509Enrollment2.CreateRequest(EncodingType编码)
  在
  Foo.Api.Core.Providers.CertificateProvider.GenerateBase64EncodedPfx(字符串
  subjectName,Int32 certificateValidityInYears,字符串密码)位于
  Foo.Api.Core.Services.CertificateService.d__4.MoveNext()
  ---从上一个引发异常的位置开始的堆栈跟踪-
  System.Runtime.CompilerServices.Taskawaiter.ThrowForNonSuccess(任务
  任务)
  System.Runtime.CompilerServices.Taskawaiter.HandleNonSuccessAndDebuggerNotification(任务
  任务)
  Foo.ServerApi.Services.DocumentSigningService.d__7.MoveNext()
  ---从上一个引发异常的位置开始的堆栈跟踪-
  System.Runtime.CompilerServices.Taskawaiter.ThrowForNonSuccess(任务
  任务)
  System.Runtime.CompilerServices.Taskawaiter.HandleNonSuccessAndDebuggerNotification(任务
  任务)
  Foo.ServerApi.Services.DocumentSigningService.d__5.MoveNext()
  ---从上一个引发异常的位置开始的堆栈跟踪-
  System.Runtime.CompilerServices.Taskawaiter.ThrowForNonSuccess(任务
  任务)
  System.Runtime.CompilerServices.Taskawaiter.HandleNonSuccessAndDebuggerNotification(任务
  任务)
  System.Runtime.CompilerServices.Taskawaiter.ValidateEnd(任务任务)
  在
  Foo.ServerApi.Controllers.DocumentController。 c__DisplayClass10_1。 d.MoveNext()

如果使用:

var cert = new CX509CertificateRequestCertificate();
cert.InitializeFromPrivateKey(X509CertificateEnrollmentContext.ContextMachine,privateKey,"");


  

服务器API错误:消息:
  CertEnroll :: CX509CertificateRequestCertificate :: InitializeFromPrivateKey:
  参数错误。 0x80070057(WIN32:87
  ERROR_INVALID_PARAMETER),StackTrace:位于
  CERTENROLLLib.IX509CertificateRequestCertificate2.InitializeFromPrivateKey(X509CertificateEnrollmentContext
  上下文,IX509PrivateKey pPrivateKey,字符串strTemplateName)位于
  Foo.Api.Core.Providers.CertificateProvider.GenerateBase64EncodedPfx(字符串
  subjectName,Int32 certificateValidityInYears,字符串密码)位于
  Foo.Api.Core.Services.CertificateService.d__4.MoveNext()
  ---从上一个引发异常的位置开始的堆栈跟踪-
  System.Runtime.CompilerServices.Taskawaiter.ThrowForNonSuccess(任务
  任务)
  System.Runtime.CompilerServices.Taskawaiter.HandleNonSuccessAndDebuggerNotification(任务
  任务)
  Foo.ServerApi.Services.DocumentSigningService.d__7.MoveNext()
  ---从上一个引发异常的位置开始的堆栈跟踪-
  System.Runtime.CompilerServices.Taskawaiter.ThrowForNonSuccess(任务
  任务)
  System.Runtime.CompilerServices.Taskawaiter.HandleNonSuccessAndDebuggerNotification(任务
  任务)
  Foo.ServerApi.Services.DocumentSigningService.d__5.MoveNext()
  ---从上一个引发异常的位置开始的堆栈跟踪-
  System.Runtime.CompilerServices.Taskawaiter.ThrowForNonSuccess(任务
  任务)
  System.Runtime.CompilerServices.Taskawaiter.HandleNonSuccessAndDebuggerNotification(任务
  任务)
  System.Runtime.CompilerServices.Taskawaiter.ValidateEnd(任务任务)
  在
  Foo.ServerApi.Controllers.DocumentController。 c__DisplayClass10_1。 d.MoveNext()

如果使用:

var cert = new CX509CertificateRequestCertificate();
cert.InitializeFromPrivateKey(X509CertificateEnrollmentContext.ContextUser,"");

有什么方法可以在Azure上使用Certenroll解决此问题?

编辑:最终错误,导致我找到正确的路径。


  

服务器API错误:消息:CertEnroll :: CX509PrivateKey :: Create:The
  系统找不到指定的文件。 0x80070002(WIN32:2
  ERROR_FILE_NOT_FOUND),StackTrace:位于
  CERTENROLLLib.IX509PrivateKey2.Create()在
  Foo.Api.Core.Providers.CertificateProvider.GenerateBase64EncodedPfx(字符串
  subjectName,Int32 certificateValidityInYears,字符串密码)位于
  Foo.Api.Core.Services.CertificateService.d__4.MoveNext()
  ---从上一个引发异常的位置开始的堆栈跟踪-
  System.Runtime.CompilerServices.Taskawaiter.ThrowForNonSuccess(任务
  任务)
  System.Runtime.CompilerServices.Taskawaiter.HandleNonSuccessAndDebuggerNotification(任务
  任务)
  Foo.ServerApi.Services.DocumentSigningService.d__7.MoveNext()
  ---从上一个引发异常的位置开始的堆栈跟踪-
  System.Runtime.CompilerServices.Taskawaiter.ThrowForNonSuccess(任务
  任务)
  System.Runtime.CompilerServices.Taskawaiter.HandleNonSuccessAndDebuggerNotification(任务
  任务)
  Foo.ServerApi.Services.DocumentSigningService.d__5.MoveNext()
  ---从上一个引发异常的位置开始的堆栈跟踪-
  System.Runtime.CompilerServices.Taskawaiter.ThrowForNonSuccess(任务
  任务)
  System.Runtime.CompilerServices.Taskawaiter.HandleNonSuccessAndDebuggerNotification(任务
  任务)
  System.Runtime.CompilerServices.Taskawaiter.ValidateEnd(任务任务)
  在
  Foo.ServerApi.Controllers.DocumentController。 c__DisplayClass10_1。 d.MoveNext()




  1. X509CertificateEnrollmentContext.ContextUser中使用InitializeFromPrivateKey

  2. 创建私钥设置privateKey.MachineCOntext= false;

  3. Azure 上添加新的应用程序设置



  

WEBSITE_LOAD_USER_PROFILE = 1

对我有用的


推荐阅读
  • ①页面初始化----------收到客户端的请求,产生相应页面的Page对象,通过Page_Init事件进行page对象及其控件的初始化.②加载视图状态-------ViewSta ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
  • Imtryingtofigureoutawaytogeneratetorrentfilesfromabucket,usingtheAWSSDKforGo.我正 ... [详细]
  • 在本教程中,我们将看到如何使用FLASK制作第一个用于机器学习模型的RESTAPI。我们将从创建机器学习模型开始。然后,我们将看到使用Flask创建AP ... [详细]
  • 引号快捷键_首选项和设置——自定义快捷键
    3.3自定义快捷键(CustomizingHotkeys)ChemDraw快捷键由一个XML文件定义,我们可以根据自己的需要, ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • WebSocket与Socket.io的理解
    WebSocketprotocol是HTML5一种新的协议。它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送 ... [详细]
  • 模板引擎StringTemplate的使用方法和特点
    本文介绍了模板引擎StringTemplate的使用方法和特点,包括强制Model和View的分离、Lazy-Evaluation、Recursive enable等。同时,还介绍了StringTemplate语法中的属性和普通字符的使用方法,并提供了向模板填充属性的示例代码。 ... [详细]
  • SpringMVC接收请求参数的方式总结
    本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ... [详细]
  • 本文介绍了使用数据库管理员用户执行onstat -l命令来监控GBase8s数据库的物理日志和逻辑日志的使用情况,并强调了对已使用的逻辑日志是否及时备份的重要性。同时提供了监控方法和注意事项。 ... [详细]
  • Servlet多用户登录时HttpSession会话信息覆盖问题的解决方案
    本文讨论了在Servlet多用户登录时可能出现的HttpSession会话信息覆盖问题,并提供了解决方案。通过分析JSESSIONID的作用机制和编码方式,我们可以得出每个HttpSession对象都是通过客户端发送的唯一JSESSIONID来识别的,因此无需担心会话信息被覆盖的问题。需要注意的是,本文讨论的是多个客户端级别上的多用户登录,而非同一个浏览器级别上的多用户登录。 ... [详细]
  • 微信官方授权及获取OpenId的方法,服务器通过SpringBoot实现
    主要步骤:前端获取到code(wx.login),传入服务器服务器通过参数AppID和AppSecret访问官方接口,获取到OpenId ... [详细]
author-avatar
1994-MMMs
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有