Observação:
- Este tutorial requer acesso ao Oracle Cloud. Para se cadastrar em uma conta gratuita, consulte Conceitos básicos do Oracle Cloud Infrastructure Free Tier.
- Ele usa valores de exemplo para credenciais, tenancy e compartimentos do Oracle Cloud Infrastructure. Ao concluir seu laboratório, substitua esses valores por valores específicos do seu ambiente de nuvem.
Usar o OCI Certificates para Emitir um Certificado Interno e Hospedar um Site Protegido por TLS/SSL no Servidor Nginx
Introdução
Neste tutorial, descrevemos como usar os Certificados do Oracle Cloud Infrastructure (OCI) para emitir um certificado interno para hospedar um site protegido por TLS (Transport Layer Security)/SSL (Secure Sockets Layer) no servidor Nginx. O OCI Certificates é um serviço para criação e gerenciamento de certificados TLS. O serviço permite que as organizações criem hierarquias de Autoridade de Certificação (CA) privadas e certificados TLS que podem ser implantados e renovados automaticamente na tenancy do cliente, integrados aos serviços do OCI, como OCI Load Balancer e OCI API Gateway. Também podemos usar este serviço para gerar certificados para nossos servidores web internos hospedados no Nginx.
Para ativar a criptografia TLS/SSL em seu servidor Nginx, você precisa de um certificado TLS/SSL. A Solicitação de Assinatura do Certificado (CSR) é uma solicitação enviada a uma CA para obter um certificado. A CSR contém informações sobre sua organização e o domínio para o qual você está solicitando o certificado. Essas informações são verificadas pela CA antes da emissão do certificado TLS/SSL. A verificação dessas informações garante que o certificado seja emitido para o proprietário legítimo do domínio. Ao criar uma CSR, você também gera uma chave privada. Essa chave privada é usada para decriptografar dados criptografados com a chave pública correspondente. É crucial gerar esta chave com segurança e mantê-la segura.
Objetivos
- Use o OCI Certificates para emitir um certificado interno e hospedar um site protegido por TLS/SSL no servidor Nginx.
Pré-requisitos
-
Instale a CLI do Oracle Cloud Infrastructure Command Line Interface (OCI) em sua máquina local. Você pode fazer download dele na página de instalação da CLI do OCI.
-
Configure e configure a CLI do OCI com as credenciais e a configuração necessárias. Você pode usar o comando
oci setup config
para configurar a CLI do OCI. -
Instale o Nginx no seu servidor. Para obter mais informações, consulte Atualizar a configuração NGINX.
Tarefa 1: Instalar a CLI do OCI na Instância do OCI Compute
-
Instalar e configurar a CLI do OCI. Para obter mais informações, consulte Interface de Linha de Comando (CLI) do OCI.
-
Depois de estabelecer conexão com a instância do OCI Compute, execute os comandos a seguir para instalar e verificar os pacotes CLI do Python e do OCI na instância Linux.
sudo dnf -y install oraclelinux-developer-release-el8 sudo dnf install python36-oci-cli
Tarefa 2: Criar uma Autoridade de Certificado (CA) no OCI
Crie uma Autoridade de Certificação (CA) usando o serviço OCI Certificate, que será usado para emitir certificados internos para nosso site. Para obter mais informações sobre a configuração da CA, consulte Criando uma Autoridade de Certificação.
Ou
Criar uma CA usando a CLI do OCI. Use o comando oci certs-mgmt certificate create-certificate-issued-by-internal-ca
e os parâmetros necessários para criar uma CA raiz. Para obter mais informações, consulte create-certificate-issued-by-internal-ca.
Formato do Comando:
oci certs-mgmt certificate-authority create-root-ca-by-generating-config-details --compartment-id <compartment_OCID> --name <CA_display_name> --subject <CA_subject_information> --kms-key-id <Vault_encryption_key_OCID>
Exemplo de comando:
oci certs-mgmt certificate-authority create-root-ca-by-generating-config-details --compartment-id ocid1.compartment.oc1..aaaaaaaaxxx --name MyRootCA --subject file://subject.json --kms-key-id ocid1.key.oc1.iad.abcxxxxx
Observação: O assunto é um tipo complexo cujo valor deve ser um JSON válido. O valor pode ser fornecido como uma string na linha de comando ou informado como um arquivo usando a sintaxe
file://path/to/file
.
Amostra de Arquivo subject.json
.
subject.json
{
"commonName": "MyRootCA"
}
Tarefa 3: Criar uma Solicitação de Assinatura de Certificado (CSR) usando OpenSSL
Crie uma CSR no servidor Nginx, que também criará uma chave privada no mesmo servidor. Esta é uma abordagem recomendada que nos fornece uma maneira padronizada de enviar a CA em sua chave pública, bem como algumas informações que identificam sua empresa e nome de domínio. A geração da CSR diretamente no servidor Nginx permite que você integre perfeitamente o certificado TLS/SSL depois que ele for emitido.
-
Navegue até
cd /etc/pki/tls/private/
. -
Crie um arquivo chamado
mywebsitecert.cnf
para especificar parâmetros como SAN (nome alternativo do assunto) para os quais você está solicitando o certificado.Observação: A extensão SAN permite a anexação de identidades adicionais, como nomes de domínio ou endereços IP, ao assunto do certificado. O uso da extensão SAN é uma prática padrão para certificados SSL e está a caminho de substituir o uso do nome comum.
Exemplo de Arquivo:
[req] distinguished_name = req_distinguished_name req_extensions = v3_req prompt = no [req_distinguished_name] C = IN ST = Telangana L = Hyd O = OU CN = www.mywebsite.com [v3_req] basicConstraints = CA:FALSE keyUsage = nonRepudiation, digitalSignature, keyEncipherment extendedKeyUsage = serverAuth subjectAltName = @alt_names [alt_names] DNS.1 = mywebsite.com IP.1 = 1.2.3.4
-
Use o comando a seguir para criar uma CSR.
Você precisará fornecer o arquivo
mywebsite.csr
a uma CA para obter seu certificado SSL. Eles usarão isso para gerar o certificado SSL para seu domínio. Ele usa a configuração já fornecida por meio do arquivomywebsitecert.cnf
.Mantenha o arquivo
private.key
seguro porque ele é usado para decriptografar dados criptografados com a chave pública correspondente.openssl req -out mywebsite.csr -newkey rsa:4096 -nodes -keyout private.key -config mywebsitecert.cnf
Tarefa 4: Criar um Certificado usando a CA
Para criar um novo certificado usando a CLI do OCI, você precisará do .pem
do certificado a ser instalado no servidor Nginx.
-
Converta o formato do arquivo
csr
para o formato.pem
.openssl req -inform DER -in mywebsite.csr -out mywebsite.pem
-
Execute o comando a seguir para criar um certificado.
Formato do Comando:
oci certs-mgmt certificate create-certificate-managed-externally-issued-by-internal-ca --compartment-id <compartment_OCID> --csr-pem <csr_pem> --issuer-certificate-authority-id <CA_OCID> --name <Certificate-name>
Exemplo de comando:
oci certs-mgmt certificate create-certificate-managed-externally-issued-by-internal-ca --compartment-id ocid1.compartment.oc1..aaaaaaaaxxx --csr-pem mywebsite.pem --issuer-certificate-authority-id ocid1.certificateauthority.oc1.iad.aaaxxxx --name mywebsite.com
Tarefa 5: Fazer Download do Certificado e da Cadeia de Certificados
Os arquivos de certificado pem
podem ser obtidos diretamente na Console do OCI, navegar até Identidade e Segurança, Certificados, Certificado, Exibir Conteúdo e fazer download do conteúdo de certificate-pem
e certificate-chain-pem
.
Crie um único arquivo combinando o conteúdo de ambos os arquivos, certificate-pem
na parte superior e certificate-chain-pem
na parte inferior do arquivo. Você pode nomeá-lo como ca_certificate.pem
.
Ou
Você também pode extrair o certificado da CLI do OCI usando o comando a seguir.
Formato do Comando:
oci certificates certificate-bundle get --certificate-id <Certificate_OCID> > certificate.crt
Observação: Copie o OCID (Oracle Cloud Identifier) do certificado.
Tarefa 6: Instalar e configurar o servidor Nginx com o certificado
-
Instale o Nginx em uma instância de computação. Para obter mais informações, consulte Instalar Nginx.
-
Abra um navegador da Web e acesse a página da Web usando
https://your-server-ip
. Verifique se há avisos de segurança ou erros que possam ser exibidos pelo navegador.Ele exibe um aviso de segurança, portanto, precisamos instalar o certificado e modificar o arquivo
conf
no servidor Nginx. -
Copie os arquivos
certificate.pem
eca_certificate.pem
baixados da Console do OCI ou da CLI do OCI para o servidor Nginx. -
Configure seu servidor Nginx editando seu arquivo de configuração, localizado em
/etc/nginx/conf.d
. -
Reinicie o servidor Nginx.
Tarefa 7: Testar se o HTTPS está funcionando
Colocamos o certificado CA (ca_certificate.pem
) na pasta de autoridade de certificação raiz confiável na máquina local, armazenamento de certificados em nossas máquinas clientes usadas para acessar este site. Isso é feito porque as CAs criadas pelos Certificados do OCI são CAs privadas e, portanto, não são confiáveis pelos navegadores. Portanto, precisamos adicionar a CA raiz e a CA intermediária (se usadas) no Armazenamento Raiz Confiável ou no Armazenamento Intermediário em todas as máquinas locais que tentam acessar o site.
Abra um navegador da Web e acesse a página da Web usando https://your-server-ip
. Agora você deve observar que a página web está sendo veiculada com um certificado TLS válido, e quaisquer avisos de segurança ou erros encontrados anteriormente devem ser resolvidos.
Ao seguir essas tarefas, você garante que seu servidor Nginx esteja configurado corretamente com o certificado CA interno e que os clientes possam acessar a página da Web com segurança por HTTPS.
Links Relacionados
Confirmação
- Autor - Shruti Soumya
Mais Recursos de Aprendizagem
Explore outros laboratórios em docs.oracle.com/learn ou acesse mais conteúdo de aprendizado gratuito no canal Oracle Learning YouTube. Além disso, visite education.oracle.com/learning-explorer para se tornar um Oracle Learning Explorer.
Para obter a documentação do produto, visite o Oracle Help Center.
Use OCI Certificates to Issue an Internal Certificate and Host a TLS/SSL Protected Website on Nginx Server
F94732-01
March 2024