热门标签 | 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

对我有用的


推荐阅读
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社区 版权所有