como adicionar .crt arquivo para armazenamento de chaves e armazenamento de confiança

Vikram:

Estou tendo um arquivo .crt e eu queria importação para keystore e truststore usando java (primeiro criar keystore e truststore então importação).

Abaixo está o código que estou usando:

import org.glassfish.tyrus.client.ClientManager;
import org.glassfish.tyrus.client.ClientProperties;
import org.glassfish.tyrus.client.SslContextConfigurator;
import org.glassfish.tyrus.client.SslEngineConfigurator;

@ClientEndpoint
public class test {

    private static CountDownLatch latch;

    private Logger logger = Logger.getLogger(this.getClass().getName());

    @OnOpen
    public void onOpen(Session session) {
        logger.info("Connected ... " + session.getId());
        try {
            session.getBasicRemote().sendText("start");
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }

    @OnMessage
    public String onMessage(String message, Session session) {
        BufferedReader bufferRead = new BufferedReader(new InputStreamReader(System.in));
        try {
            logger.info("Received ...." + message);
            String userInput = bufferRead.readLine();
            return userInput;
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }

    @OnClose
    public void onClose(Session session, CloseReason closeReason) {
        logger.info(String.format("Session %s close because of %s", session.getId(), closeReason));
    }

    public static void main(String[] args) {
        latch = new CountDownLatch(1);
        ClientManager client = ClientManager.createClient();

        try {
            client.connectToServer(test.class, new URI("wss://x.x.x.x:8085"));
            latch.await();

        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }

}

Eu estou usando cliente Tyrus websocket assim, eu preciso adicionar a seguinte propriedade:

    final ClientManager client = ClientManager.createClient();
    System.getProperties().put("javax.net.debug", "all");
    System.getProperties().put(SSLContextConfigurator.KEY_STORE_FILE, "...");
    System.getProperties().put(SSLContextConfigurator.TRUST_STORE_FILE, "...");
    System.getProperties().put(SSLContextConfigurator.KEY_STORE_PASSWORD, "...");
    System.getProperties().put(SSLContextConfigurator.TRUST_STORE_PASSWORD, "...");
    final SSLContextConfigurator defaultConfig = new SSLContextConfigurator();

    defaultConfig.retrieve(System.getProperties());
        // or setup SSLContextConfigurator using its API.

    SSLEngineConfigurator sslEngineConfigurator =
        new SSLEngineConfigurator(defaultConfig, true, false, false);
    client.getProperties().put(ClientProperties.SSL_ENGINE_CONFIGURATOR,
        sslEngineConfigurator);
    client.connectToServer(... , ClientEndpointConfig.Builder.create().build(),
        new URI("wss://localhost:8181/sample-echo/echo"));
    }

Então, como posso criar keystore e truststore e .crt importação para ele.

Vikram:

Eu resolvi o problema acima, dirctly importar o arquivo .crt para java keystore:

Para importar para java keystore

keytool -trustcacerts -keystore "/jdk/jre/lib/security/cacerts" -storepass changeit -importcert -alias testalias -file "/opt/ssl/test.crt"

Usando comando acima o certificado do servidor será valdated e conexão será achived mas se você quer criar novo armazenamento de chaves e importe .crt para que significa usar o comando abaixo ele irá criar o armazenamento de chaves de .jks tipo.

Para a criação de armazenamento de chaves e importação .crt

keytool -import -alias testalias -file test.crt -keypass keypass -keystore test.jks -storepass test@123

aqui

keystore password : test@123
keypass : keypass

Como alguns código irá validar e se você estiver usando o WSS / https ele irá pedir keystore / truststore configuração, então você pode usar acima de configuração mencionado no passo 2 (criação de armazenamento de chaves e .crt importação). Caso contrário, Passo 1 (importar em Java armazenamento de chave) é suficiente.

Acho que você gosta

Origin http://43.154.161.224:23101/article/api/json?id=230164&siteId=1
Recomendado
Clasificación