C# 在项目中,我应该将证书序列号放在哪里?

C# 在项目中,我应该将证书序列号放在哪里?,c#,.net,vb.net,x509certificate,client-certificates,C#,.net,Vb.net,X509certificate,Client Certificates,我有一个项目,从服务器中提取安全证书,我使用证书序列号获取我需要的证书 我的问题是,我应该将序列号放在项目中的什么位置? 是否应该在应用程序中硬编码?(这似乎不对??) 在配置中?(似乎不安全) 此外,序列号可能会根据环境、开发或生产而变化 在这种情况下,企业级应用程序做什么? 任何指导都将不胜感激,谢谢 将序列号放入专用数据库表中,例如认证信息,以便安全存储。您可以定义包含以下字段的表: 环境(“开发”、“质量保证”、“产品”) 证书编号 然后,通过应用程序,您可以对数据库执行select

我有一个项目,从服务器中提取安全证书,我使用证书序列号获取我需要的证书

我的问题是,我应该将序列号放在项目中的什么位置?

  • 是否应该在应用程序中硬编码?(这似乎不对??)

  • 在配置中?(似乎不安全)

此外,序列号可能会根据环境、开发或生产而变化

在这种情况下,企业级应用程序做什么?
任何指导都将不胜感激,谢谢

将序列号放入专用数据库表中,例如认证信息,以便安全存储。您可以定义包含以下字段的表:

  • 环境(“开发”、“质量保证”、“产品”)
  • 证书编号
  • 然后,通过应用程序,您可以对数据库执行select并检索所需的证书号,如下所示:

    select Certificate_number from CertInformation where Environment = '[target environment]'
    

    与服务器对话的客户端应用程序还是服务器应用程序?问题不太清楚。这是一个应用程序,它从服务器上提取证书,然后使用证书向第三方进行身份验证。因此,应用程序和证书都在同一台服务器上,您仍然觉得在web.config中保留该号码不安全。有理由不感到安全吗?是的,在web.config中加密连接字符串是最佳做法,所以。。。我不喜欢打开序列号,不像Facebook、谷歌或苹果那样,我正在寻找企业级的最佳实践不仅可以加密连接字符串,还可以加密web.config文件的任何部分。但是,仍然想知道你怎么知道谷歌或facebook加密或不加密他们的服务器端的东西-我们没有看到它从客户端。而且,证书序列号似乎不是一级机密,私钥应该是。