Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Ao ligar aplicações ao Azure HorizonDB, o cliente da aplicação tem de instalar certificados de raiz fidedignos. As secções seguintes guiam-no na atualização dos certificados raiz de confiança para aplicações, o que é um cenário comum para aplicações que se ligam a uma instância do Azure HorizonDB.
Importar certificados de autoridade de certificação raiz no Java KeyStore, no lado do cliente, para cenários de associação de certificados
Aplicativos Java personalizados usam um keystore padrão, chamado cacerts, que contém certificados de autoridade de certificação (CA) confiáveis. Também é frequentemente conhecido como repositório de confiança Java. Um arquivo de certificados chamado cacerts reside no diretório de propriedades de segurança, java.home\lib\security, onde java.home é o diretório do ambiente de tempo de execução (o jre diretório no SDK ou o diretório de nível superior do Java™ 2 Runtime Environment).
Você pode usar as seguintes instruções para atualizar certificados de CA raiz do cliente para cenários de fixação de certificados de cliente com o PostgreSQL:
Verifica a
cacertsloja de chaves Java para ver se já contém os certificados necessários. Pode listar certificados na loja de chaves Java usando o seguinte comando:keytool -list -v -keystore ..\lib\security\cacerts > outputfile.txtSe os certificados necessários não estiverem presentes na loja de chaves Java do cliente, como pode verificar na saída, siga as seguintes instruções:
Faça uma cópia de backup do seu keystore personalizado.
Transfira certificados e guarde-os localmente onde pode consultá-los.
Gere um armazenamento de certificados de CA combinado com todos os certificados de CA raiz necessários incluídos. O exemplo abaixo mostra o uso de DefaultJavaSSLFactory para usuários JDBC PostgreSQL.
keytool -importcert -alias PostgreSQLServerCACert -file D:\ DigiCertGlobalRootG2.crt.pem -keystore truststore -storepass password -noprompt keytool -importcert -alias PostgreSQLServerCACert2 -file "D:\ Microsoft ECC Root Certificate Authority 2017.crt.pem" -keystore truststore -storepass password -noprompt keytool -importcert -alias PostgreSQLServerCACert -file D:\ DigiCertGlobalRootCA.crt.pem -keystore truststore -storepass password -nopromptSubstitua o arquivo keystore original pelo novo arquivo gerado:
System.setProperty("javax.net.ssl.trustStore","path_to_truststore_file"); System.setProperty("javax.net.ssl.trustStorePassword","password");Substitua o arquivo pem da autoridade de certificação raiz original pelo arquivo de autoridade de certificação raiz combinada e reinicie o aplicativo/cliente.
Para obter mais informações sobre como configurar certificados de cliente com o driver JDBC PostgreSQL, consulte esta documentação.
Note
Para importar certificados para repositórios de certificados de cliente, talvez seja necessário converter arquivos .crt de certificado para o formato .pem. Pode usar Transport Layer Security (TLS) no Azure HorizonDB (Preview).
Obtenha uma lista de certificados confiáveis no Java Key Store programaticamente
Por padrão, o Java armazena os certificados confiáveis em um arquivo especial chamado cacerts que está localizado dentro da pasta de instalação Java no cliente.
O exemplo abaixo primeiro lê cacerts e carrega no objeto KeyStore :
private KeyStore loadKeyStore() {
String relativeCacertsPath = "/lib/security/cacerts".replace("/", File.separator);
String filename = System.getProperty("java.home") + relativeCacertsPath;
FileInputStream is = new FileInputStream(filename);
KeyStore keystore = KeyStore.getInstance(KeyStore.getDefaultType());
String password = "changeit";
keystore.load(is, password.toCharArray());
return keystore;
}
A senha padrão para cacerts é changeit , mas deve ser diferente no cliente real, pois os administradores recomendam alterar a senha imediatamente após a instalação do Java.
Depois de carregarmos o objeto KeyStore , podemos usar a classe PKIXParameters para ler os certificados presentes.
public void whenLoadingCacertsKeyStore_thenCertificatesArePresent() {
KeyStore keyStore = loadKeyStore();
PKIXParameters params = new PKIXParameters(keyStore);
Set<TrustAnchor> trustAnchors = params.getTrustAnchors();
List<Certificate> certificates = trustAnchors.stream()
.map(TrustAnchor::getTrustedCert)
.collect(Collectors.toList());
assertFalse(certificates.isEmpty());
}
Atualize os certificados da autoridade de certificação raiz ao utilizar clientes no Aplicação Azure AD Services, para cenários de fixação de certificados
Para o Aplicação Azure AD Services, ao ligar a uma instância do Azure HorizonDB, existem dois cenários possíveis ao atualizar os certificados de cliente, e isso depende da forma como está a utilizar o SSL com a sua aplicação implementada no Aplicação Azure AD Services.
- Novos certificados são adicionados ao App Service ao nível da plataforma antes de ocorrerem alterações na sua instância do Azure HorizonDB. Se você estiver usando os certificados SSL incluídos na plataforma do Serviço de Aplicativo em seu aplicativo, nenhuma ação será necessária. Para obter mais informações, consulte Adicionar e gerenciar certificados TLS/SSL no Serviço de Aplicativo do Azure, na documentação do Serviço de Aplicativo do Azure.
- Se você estiver incluindo explicitamente o caminho para o arquivo de certificado SSL em seu código, será necessário baixar o novo certificado e atualizar o código para usá-lo. Um bom exemplo desse cenário é quando você usa contêineres personalizados no Serviço de Aplicativo conforme descrito no Tutorial: Configurar um contêiner de sidecar para contêiner personalizado no Serviço de Aplicativo do Azure, na documentação do Serviço de Aplicativo do Azure.
Atualize os certificados da autoridade de certificação raiz ao utilizar clientes no Azure Kubernetes Service (AKS), para cenários de fixação de certificados
Se está a tentar ligar-se ao Azure HorizonDB usando aplicações alojadas no Azure Kubernetes Services (AKS) e fixar certificados, é semelhante ao acesso a partir do ambiente host dedicado de um cliente. Consulte as etapas aqui.
Atualizar certificados de autoridade certificadora raiz para utilizadores .NET (Npgsql) no Windows, para cenários de fixação de certificados
Para utilizadores .NET (Npgsql) no Windows que se ligam ao Azure HorizonDB, certifique-se de que os três Microsoft RSA Root Certificate Authority 2017, DigiCert Global Root G2 e DigiCert Global Root CA existem todos na Windows Certificate Store, Trusted Root Certification Authorities. Se não existirem certificados, importe o certificado em falta.
Atualizar certificados de autoridade de certificação raiz para outros clientes, para cenários de fixação de certificados
Para outros usuários do cliente PostgreSQL, você pode mesclar dois arquivos de certificado de CA usando o seguinte formato:
-----BEGIN CERTIFICATE-----
(Root CA1: DigiCertGlobalRootCA.crt.pem)
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
(Root CA2: Microsoft ECC Root Certificate Authority 2017.crt.pem)
-----END CERTIFICATE-----