4

アップロードされた証明書が本当に pfx 証明書であることを確認する方法はありますか? 次のコードで試しました:

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

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

ただし、ほとんどの場合、コンテンツ タイプはアプリケーション/オクテット ストリームであり、これは役に立ちません。

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 に答える