小编Ron*_*eod的帖子

Quarkus 本机映像:在运行时加载 PKCS12 文件

我有一个 Quarkus 应用程序,它实现了 ProtoBuf-over-TLS 通信通道的服务器端,并在运行时加载 PFX/P12 文件以获取服务器证书和私钥。

该应用程序在从构建的 jar 运行时运行良好,但是当我尝试运行本机映像时,我收到一条错误消息,指出找不到 PKCS12 算法。似乎本机映像希望在构建时引入安全工件。我有这个正确吗?有没有办法解决这个问题?

示例代码:

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.security.KeyStore;

import javax.net.ssl.KeyManagerFactory;
import javax.net.ssl.SSLContext;

import io.quarkus.runtime.QuarkusApplication;
import io.quarkus.runtime.annotations.QuarkusMain;

@QuarkusMain
public class KeystoreTest implements QuarkusApplication {
    String keystoreFile = "/home/sm-dp/... server.pfx";
    String keystoreSecret = "secret";

    @Override
    public int run(String... args) throws Exception {
        KeyStore keystore = KeyStore.getInstance("PKCS12");
        try (InputStream fis = new FileInputStream(new File(keystoreFile))) {
            keystore.load(fis, keystoreSecret.toCharArray());
        }

        KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance("PKIX");
        keyManagerFactory.init(keystore, keystoreSecret.toCharArray());

        SSLContext sslContext = SSLContext.getInstance("TLSv1.2");
        sslContext.init(keyManagerFactory.getKeyManagers(), null, …
Run Code Online (Sandbox Code Playgroud)

java ssl native keystore quarkus

5
推荐指数
1
解决办法
323
查看次数

标签 统计

java ×1

keystore ×1

native ×1

quarkus ×1

ssl ×1