客户端X.509证书

时间:2015-01-21 13:22:48

标签: spring security certificate x509certificate sign

我需要使用客户端的公钥来加密文档。我可以从他们的网站上获得客户证书。我的问题是我的应用程序应如何访问此证书?

  • 我是否应该在每次需要时从他们的网站上获取它?
  • 或者,我应该下载并存储它:
    • 在我的KeyStore中
    • 或者,就像本地文件一样

我还需要验证此证书并使用CRL。 我的应用程序使用最新的Spring版本。

由于

1 个答案:

答案 0 :(得分:1)

您应该每次下载证书(如果可用)。但您还需要每次都验证证书并进行完整的链验证Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile(第71页,第6章:证书路径验证),包括CRL和/或OCSP。

如果您没有下载证书,您怎么知道它已经改变了?证书不仅会在过期时更改。

使用混合加密方案进行文档加密。

<强>更新

  

你能说出你的意思吗?“证书不仅会在过期后改变吗?”?还有什么可以改变,它有什么关系?

我的意思是您每次访问该服务时都需要检查证书。一个快速而肮脏的解决方案是下载证书一次,查找到期日期,并且只有在过期日期过后才重新检查证书。但这对公钥基础设施系统来说将是毁灭性的。我们的想法是每次访问某些服务时都要检查证书。证书可能在到期日之前发生变化,这可能有原因。

出于某些原因,请参阅提供的链接RFC 5280 on page 69

CRLReason ::= ENUMERATED {
    unspecified             (0),
    keyCompromise           (1),
    cACompromise            (2),
    affiliationChanged      (3),
    superseded              (4),
    cessationOfOperation    (5),
    certificateHold         (6),
         -- value 7 is not used
    removeFromCRL           (8),
    privilegeWithdrawn      (9),
    aACompromise           (10) }