4

有什么方法可以检查上传的证书是否真的是 pfx 证书?我尝试使用以下代码:

LazyValidatorForm lazyForm = (LazyValidatorForm) actionForm;
FormFile cerFile = (FormFile) lazyForm.get("cerFile");

if (!cerFile.getContentType().equals("application/x-pkcs12")) {
    /** return error code **/
}

但是,大多数情况下,内容类型是 application/octet-stream,这是没有用的

4

1 回答 1

1

您可以尝试将上传的文件加载到KeyStore中:

LazyValidatorForm lazyForm = (LazyValidatorForm) actionForm;
FormFile cerFile = (FormFile) lazyForm.get("cerFile");

KeyStore keyStore = KeyStore.getInstance("PKCS12");
keyStore.load(cerFile.getInputStream(), null);

即使 .pfx 包含受密码保护的私钥,仍应加载 .pfx(没有密码基本上没用,但应该加载)。

如果keyStore.size()加载后没有异常且等于 1,则它必须是 .pfx 文件。

于 2012-07-08T19:08:49.350 回答