From c3b18febfeacf645c0b77e42e865306c1e918fd3 Mon Sep 17 00:00:00 2001 From: "jardel.novaes" Date: Sat, 13 Jul 2024 16:14:59 -0300 Subject: [PATCH 1/3] Tratamento de certificados na camada TLS/SSL em multithreading --- .../certificado/Certificado.java | 2 + .../certificado/CertificadoService.java | 91 ++++++++++++++----- .../certificado/CertificadoServiceTest.java | 36 ++++++++ 3 files changed, 104 insertions(+), 25 deletions(-) diff --git a/src/main/java/br/com/swconsultoria/certificado/Certificado.java b/src/main/java/br/com/swconsultoria/certificado/Certificado.java index d7067ce..db41175 100644 --- a/src/main/java/br/com/swconsultoria/certificado/Certificado.java +++ b/src/main/java/br/com/swconsultoria/certificado/Certificado.java @@ -32,9 +32,11 @@ public class Certificado { private String sslProtocol; private BigInteger numeroSerie; private Provider provider; + private boolean modoAntigoSSL; public Certificado() { this.setSslProtocol(TLSV_1_2); + this.setModoAntigoSSL(true); //TODO Temporariamente o padrão será true, até validação do Bruno S. } @Override diff --git a/src/main/java/br/com/swconsultoria/certificado/CertificadoService.java b/src/main/java/br/com/swconsultoria/certificado/CertificadoService.java index 86b5e76..bdd7544 100644 --- a/src/main/java/br/com/swconsultoria/certificado/CertificadoService.java +++ b/src/main/java/br/com/swconsultoria/certificado/CertificadoService.java @@ -3,6 +3,7 @@ import br.com.swconsultoria.certificado.exception.CertificadoException; import br.com.swconsultoria.certificado.util.DocumentoUtil; import lombok.extern.java.Log; +import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.protocol.Protocol; import java.io.FileNotFoundException; @@ -36,34 +37,25 @@ public static void inicializaCertificado(Certificado certificado) throws Certifi } public static void inicializaCertificado(Certificado certificado, InputStream cacert) throws CertificadoException { + if (certificado == null) { + throw new IllegalArgumentException(CERTIFICADO_NAO_PODE_SER_NULO); + } - try { - - KeyStore keyStore = getKeyStore( - Optional.ofNullable(certificado).orElseThrow(() -> new IllegalArgumentException(CERTIFICADO_NAO_PODE_SER_NULO))); - SocketFactoryDinamico socketFactory = new SocketFactoryDinamico(keyStore, certificado.getNome(), certificado.getSenha(), - Optional.ofNullable(cacert).orElseThrow(() -> new IllegalArgumentException("Cacert não pode ser nulo.")), - certificado.getSslProtocol()); - Protocol protocol = new Protocol("https", socketFactory, 443); - Protocol.registerProtocol("https", protocol); - - log.info(String.format("JAVA-CERTIFICADO | Samuel Oliveira | samuel@swconsultoria.com.br " + - "| VERSAO=%s | DATA_VERSAO=%s | CNPJ/CPF=%s | VENCIMENTO=%s | ALIAS=%s | TIPO=%s | CAMINHO=%s | CACERT=%s | SSL=%s", - "3.7", - "11/07/2024", - certificado.getCnpjCpf(), - certificado.getDataHoraVencimento(), - certificado.getNome().toUpperCase(), - certificado.getTipoCertificado().toString(), - certificado.getArquivo(), - cacertProprio ? "Default" : "Customizado", - certificado.getSslProtocol())); - - } catch (KeyStoreException | NoSuchAlgorithmException | KeyManagementException | CertificateException | - IOException e) { - throw new CertificadoException(e.getMessage(), e); + if (certificado.isModoAntigoSSL()) { + Protocol.registerProtocol("https", getProtocoloCertificado(certificado, cacert)); } + log.info(String.format("JAVA-CERTIFICADO | Samuel Oliveira | samuel@swconsultoria.com.br " + + "| VERSAO=%s | DATA_VERSAO=%s | CNPJ/CPF=%s | VENCIMENTO=%s | ALIAS=%s | TIPO=%s | CAMINHO=%s | CACERT=%s | SSL=%s", + "3.7", + "11/07/2024", + certificado.getCnpjCpf(), + certificado.getDataHoraVencimento(), + certificado.getNome().toUpperCase(), + certificado.getTipoCertificado().toString(), + certificado.getArquivo(), + cacertProprio ? "Default" : "Customizado", + certificado.getSslProtocol())); } public static Certificado certificadoPfxBytes(byte[] certificadoBytes, String senha) throws CertificadoException { @@ -278,4 +270,53 @@ public static Certificado getCertificadoByCnpjCpf(String cnpjCpf) throws Certifi cnpjCpf)); } + private static Protocol getProtocoloCertificado(final Certificado certificado, InputStream cacert) throws CertificadoException { + try { + KeyStore keyStore = getKeyStore( + Optional.ofNullable(certificado).orElseThrow(() -> new IllegalArgumentException(CERTIFICADO_NAO_PODE_SER_NULO))); + SocketFactoryDinamico socketFactory = new SocketFactoryDinamico(keyStore, certificado.getNome(), certificado.getSenha(), + Optional.ofNullable(cacert).orElseThrow(() -> new IllegalArgumentException("Cacert não pode ser nulo.")), + certificado.getSslProtocol()); + + return new Protocol("https", socketFactory, 443); + + } catch (KeyStoreException | NoSuchAlgorithmException | KeyManagementException | CertificateException | + IOException e) { + throw new CertificadoException(e.getMessage(), e); + } + } + + + //FIXME Validar Samuel: Talvez não seja aqui o melhor local, coloquei inicialmente porque é acessível de todos que consomem a lib de certificado. + /** + * Utiliza cacert default da biblioteca. + * @see #getHttpsClient(Certificado, String, InputStream) + */ + public static HttpClient getHttpsClient(Certificado certificado, String url) throws CertificadoException { + return getHttpsClient(certificado, url, CertificadoService.class.getResourceAsStream("/cacert")); + } + + /** + *

Utilizar o {@link org.apache.commons.httpclient.HttpClient} gerado nesse método para evitar conflitos de + * certificados nas conexões HTTPS/TLS/SSL, especialmente em ambientes multithread.

+ * + *

O consumidor desse método deverá usar esse cliente no stub desejado

+ * exemplo: + *
+     *     HttpClient client = getHttpsClient(certificado, url);
+     *     NFeStatusServico4Stub stub = new NFeStatusServico4Stub(url);
+     *     stub._getServiceClient().getOptions().setProperty(HTTPConstants.CACHED_HTTP_CLIENT, httpclient);
+     * 
+ * @param certificado {@link Certificado} a ser utilizado na conexão. + * @param url {@link String} a ser executada na conexão https + * @param cacert {@link java.io.InputStream} contendo o cacert + * @return {@link org.apache.commons.httpclient.HttpClient} configurado para a URL e Certificados informados. + * @throws CertificadoException + */ + public static HttpClient getHttpsClient(Certificado certificado, String url, final InputStream cacert) throws CertificadoException { + Protocol protocol = getProtocoloCertificado(certificado, cacert); + HttpClient httpclient = new HttpClient(); + httpclient.getHostConfiguration().setHost(url, 443, protocol); + return httpclient; + } } diff --git a/src/test/java/br/com/swconsultoria/certificado/CertificadoServiceTest.java b/src/test/java/br/com/swconsultoria/certificado/CertificadoServiceTest.java index d3d2700..44c45e5 100644 --- a/src/test/java/br/com/swconsultoria/certificado/CertificadoServiceTest.java +++ b/src/test/java/br/com/swconsultoria/certificado/CertificadoServiceTest.java @@ -4,12 +4,18 @@ import br.com.swconsultoria.certificado.util.DocumentoUtil; import mockit.Mock; import mockit.MockUp; +import org.apache.commons.httpclient.HttpClient; +import org.apache.commons.httpclient.methods.GetMethod; +import org.apache.commons.httpclient.protocol.Protocol; +import org.apache.commons.httpclient.protocol.ProtocolSocketFactory; import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; +import java.lang.reflect.Field; import java.math.BigInteger; import java.nio.file.Files; import java.nio.file.Paths; @@ -207,4 +213,34 @@ void extraiCpfCnpjCorretamente() { } + /** + *

Testa a compatibilidade com consumidores "antigos", que ainda não estão no "novo modelo" de controle do + * certificado nas conexões TLS/SSL. Isso permitirá uma "migração gradual" dos consumidores.

+ * Por padrão será utilizado o novo modo, cada consumidor irá precisar explicitamente escolher o "modo antigo SSL", + * caso deseje. + */ + @Test + void compatibilidadeComModoAntigoSSL() throws FileNotFoundException, CertificadoException { + Certificado certificado = CertificadoService.certificadoPfx(CERTIFICADO_CPF, SENHA); + certificado.setModoAntigoSSL(true); + CertificadoService.inicializaCertificado(certificado); + + String alias = getHttpsProtocoloAlias("https"); + + assertEquals("certificado cpf teste", alias); + } + + private String getHttpsProtocoloAlias(String protocolId) { + try { + Protocol registeredProtocol = Protocol.getProtocol(protocolId); + ProtocolSocketFactory factory = registeredProtocol.getSocketFactory(); + + Class clazz = factory.getClass(); + Field getAliasField = clazz.getDeclaredField("alias"); + getAliasField.setAccessible(true); + return (String) getAliasField.get(factory); + } catch (Exception e) { + return null; + } + } } \ No newline at end of file From 3562585bc2b41286127aec68e988786e05df9bc3 Mon Sep 17 00:00:00 2001 From: "jardel.novaes" Date: Sat, 12 Oct 2024 11:14:56 -0300 Subject: [PATCH 2/3] Tratamento de certificados na camada TLS/SSL em multithreading - Ajustes Code Review --- .../certificado/Certificado.java | 4 +-- .../certificado/CertificadoService.java | 21 ++++++++++++--- .../certificado/CertificadoServiceTest.java | 26 +++++++------------ 3 files changed, 29 insertions(+), 22 deletions(-) diff --git a/src/main/java/br/com/swconsultoria/certificado/Certificado.java b/src/main/java/br/com/swconsultoria/certificado/Certificado.java index db41175..02ef09d 100644 --- a/src/main/java/br/com/swconsultoria/certificado/Certificado.java +++ b/src/main/java/br/com/swconsultoria/certificado/Certificado.java @@ -32,11 +32,11 @@ public class Certificado { private String sslProtocol; private BigInteger numeroSerie; private Provider provider; - private boolean modoAntigoSSL; + private boolean isModoMultithreading; public Certificado() { this.setSslProtocol(TLSV_1_2); - this.setModoAntigoSSL(true); //TODO Temporariamente o padrão será true, até validação do Bruno S. + this.setModoMultithreading(false); } @Override diff --git a/src/main/java/br/com/swconsultoria/certificado/CertificadoService.java b/src/main/java/br/com/swconsultoria/certificado/CertificadoService.java index bdd7544..f84c3c4 100644 --- a/src/main/java/br/com/swconsultoria/certificado/CertificadoService.java +++ b/src/main/java/br/com/swconsultoria/certificado/CertificadoService.java @@ -36,12 +36,27 @@ public static void inicializaCertificado(Certificado certificado) throws Certifi inicializaCertificado(certificado, CertificadoService.class.getResourceAsStream("/cacert")); } + /** + * + *

Inicializa o certificado para a conexão SSL/TLS.

+ *

Importante: Quando NÃO estiver com o modo multithreading ativado (certificado.isModoMultithreading()) + * será registrado e utilizado um único certificado em todas as conexões até a próxima chamada à + * {@link #inicializaCertificado(Certificado, InputStream)}. É o modo antigo e padrão da biblioteca.

+ *

Quando estiver com o modo multithreading ativo o consumidor deverá obter um + * {@link org.apache.commons.httpclient.HttpClient} com protocolo e certificado exclusivos para ele usando o + * método {@link #getHttpsClient(Certificado, String, InputStream)}

+ * + * @param certificado {@link Certificado} a ser utilizado na conexão. + * @param cacert {@link java.io.InputStream} contendo o cacert + * @throws CertificadoException + */ + public static void inicializaCertificado(Certificado certificado, InputStream cacert) throws CertificadoException { if (certificado == null) { throw new IllegalArgumentException(CERTIFICADO_NAO_PODE_SER_NULO); } - if (certificado.isModoAntigoSSL()) { + if (!certificado.isModoMultithreading()) { Protocol.registerProtocol("https", getProtocoloCertificado(certificado, cacert)); } @@ -286,8 +301,6 @@ private static Protocol getProtocoloCertificado(final Certificado certificado, I } } - - //FIXME Validar Samuel: Talvez não seja aqui o melhor local, coloquei inicialmente porque é acessível de todos que consomem a lib de certificado. /** * Utiliza cacert default da biblioteca. * @see #getHttpsClient(Certificado, String, InputStream) @@ -298,7 +311,7 @@ public static HttpClient getHttpsClient(Certificado certificado, String url) thr /** *

Utilizar o {@link org.apache.commons.httpclient.HttpClient} gerado nesse método para evitar conflitos de - * certificados nas conexões HTTPS/TLS/SSL, especialmente em ambientes multithread.

+ * certificados nas conexões HTTPS/TLS/SSL, especialmente em ambientes multithreading.

* *

O consumidor desse método deverá usar esse cliente no stub desejado

* exemplo: diff --git a/src/test/java/br/com/swconsultoria/certificado/CertificadoServiceTest.java b/src/test/java/br/com/swconsultoria/certificado/CertificadoServiceTest.java index 44c45e5..899c27f 100644 --- a/src/test/java/br/com/swconsultoria/certificado/CertificadoServiceTest.java +++ b/src/test/java/br/com/swconsultoria/certificado/CertificadoServiceTest.java @@ -4,12 +4,9 @@ import br.com.swconsultoria.certificado.util.DocumentoUtil; import mockit.Mock; import mockit.MockUp; -import org.apache.commons.httpclient.HttpClient; -import org.apache.commons.httpclient.methods.GetMethod; import org.apache.commons.httpclient.protocol.Protocol; import org.apache.commons.httpclient.protocol.ProtocolSocketFactory; import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import java.io.FileNotFoundException; @@ -33,11 +30,11 @@ class CertificadoServiceTest { - private final String CERTIFICADO_CPF = "NaoUsar_CPF.pfx"; - private final String CERTIFICADO_CNPJ = "NaoUsar_CNPJ.pfx"; - private final String CPF = "99999999999"; - private final String CNPJ = "99999999999999"; - private final String SENHA = "123456"; + private static final String CERTIFICADO_CPF = "NaoUsar_CPF.pfx"; + private static final String CERTIFICADO_CNPJ = "NaoUsar_CNPJ.pfx"; + private static final String CPF = "99999999999"; + private static final String CNPJ = "99999999999999"; + private static final String SENHA = "123456"; @Test void certificadoPfxParametroNull() { @@ -178,10 +175,7 @@ void inicaConfiguracoesCorretamente() { } @Test - void inicaConfiguracoesParametrosNull() throws IOException, CertificadoException { - - InputStream cacert = CertificadoServiceTest.class.getResourceAsStream("cacert"); - Certificado certificado = CertificadoService.certificadoPfx(CERTIFICADO_CNPJ, SENHA); + void inicaConfiguracoesParametrosNull() { //Certificado Null Assertions.assertThrows(IllegalArgumentException.class, () -> @@ -216,13 +210,13 @@ void extraiCpfCnpjCorretamente() { /** *

Testa a compatibilidade com consumidores "antigos", que ainda não estão no "novo modelo" de controle do * certificado nas conexões TLS/SSL. Isso permitirá uma "migração gradual" dos consumidores.

- * Por padrão será utilizado o novo modo, cada consumidor irá precisar explicitamente escolher o "modo antigo SSL", - * caso deseje. + *

Por padrão será utilizado o modo antigo, cada consumidor irá precisar explicitamente escolher o + * "modo multithreading", caso deseje.

*/ @Test - void compatibilidadeComModoAntigoSSL() throws FileNotFoundException, CertificadoException { + void compatibilidadeModoMultithreadingDesativado() throws FileNotFoundException, CertificadoException { Certificado certificado = CertificadoService.certificadoPfx(CERTIFICADO_CPF, SENHA); - certificado.setModoAntigoSSL(true); + certificado.setModoMultithreading(false); CertificadoService.inicializaCertificado(certificado); String alias = getHttpsProtocoloAlias("https"); From 4c742c99d15c440a8e9bcca0181769453e766999 Mon Sep 17 00:00:00 2001 From: SamuelOliveira Date: Mon, 14 Oct 2024 14:13:14 -0300 Subject: [PATCH 3/3] Finalizado versao 3.8 --- CHANGELOG.md | 1 + cacert | Bin 419363 -> 423001 bytes .../certificado/CertificadoService.java | 9 +++++---- src/main/resources/cacert | Bin 419363 -> 423001 bytes 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 86084de..884b05a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,2 +1,3 @@ # Notas de versão - Atualizado CACERT +- Adicionado modo Multithreading diff --git a/cacert b/cacert index 5c23517384c12c685cd0db46cac3bc2fbfe0ff7f..ada2f805e53472ebc49e15b52e40351c4632d1ad 100644 GIT binary patch delta 40037 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 nye>43f?7qV2;}fWGZt7ScamAUnFND delta 40519 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 Zonu1DEvPHfmHZU;D?dCTz1XOm@ISEvr%(U@ diff --git a/src/main/java/br/com/swconsultoria/certificado/CertificadoService.java b/src/main/java/br/com/swconsultoria/certificado/CertificadoService.java index f84c3c4..4de4936 100644 --- a/src/main/java/br/com/swconsultoria/certificado/CertificadoService.java +++ b/src/main/java/br/com/swconsultoria/certificado/CertificadoService.java @@ -61,16 +61,17 @@ public static void inicializaCertificado(Certificado certificado, InputStream ca } log.info(String.format("JAVA-CERTIFICADO | Samuel Oliveira | samuel@swconsultoria.com.br " + - "| VERSAO=%s | DATA_VERSAO=%s | CNPJ/CPF=%s | VENCIMENTO=%s | ALIAS=%s | TIPO=%s | CAMINHO=%s | CACERT=%s | SSL=%s", - "3.7", - "11/07/2024", + "| VERSAO=%s | DATA_VERSAO=%s | CNPJ/CPF=%s | VENCIMENTO=%s | ALIAS=%s | TIPO=%s | CAMINHO=%s | CACERT=%s | SSL=%s | Multithreading=%s", + "3.8", + "14/10/2024", certificado.getCnpjCpf(), certificado.getDataHoraVencimento(), certificado.getNome().toUpperCase(), certificado.getTipoCertificado().toString(), certificado.getArquivo(), cacertProprio ? "Default" : "Customizado", - certificado.getSslProtocol())); + certificado.getSslProtocol(), + certificado.isModoMultithreading())); } public static Certificado certificadoPfxBytes(byte[] certificadoBytes, String senha) throws CertificadoException { diff --git a/src/main/resources/cacert b/src/main/resources/cacert index 5c23517384c12c685cd0db46cac3bc2fbfe0ff7f..ada2f805e53472ebc49e15b52e40351c4632d1ad 100644 GIT binary patch delta 40037 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 nye>43f?7qV2;}fWGZt7ScamAUnFND delta 40519 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 Zonu1DEvPHfmHZU;D?dCTz1XOm@ISEvr%(U@