Gerar certificados para a configuração do navegador remoto para Microsoft Windows

  • Versão de lançamento: Washingtondc
  • Atualizado 1 de fev. de 2024
  • 3 min. de leitura
  • Gere certificados TLS/SSL para proteger a REST API do Docker e autenticar solicitações HTTP.

    Antes de Iniciar

    Função necessária: administrador na sua instância ServiceNow e administrador local na máquina host.
    Aviso:
    A única versão compatível com ServiceNow] do Microsoft Windows como host é: Windows Server 2019 v10.0.17763.737. Nenhuma outra versão é compatível. Se você não puder atender a esses requisitos, um host Linux será recomendado.
    Observe os seguintes requisitos:
    • Comunicação bidirecional
      Aviso:
      Certifique-se de obter chaves de autoridade de certificação de uma autoridade de certificação confiável.
      • Deve haver comunicação bidirecional entre o URL da instância e o servidor.
      • Encontre o endereço IP do seu servidor e obtenha o nome do host. Você pode usar um ou ambos, mas precisa de pelo menos um.
        Nota:
        Se você não tiver um nome de host e estiver se conectando por meio do endereço IP, poderá inserir o endereço IP e colocar "localhost" na variável de ambiente Hostname.
      Dica:
      Para facilitar a memorização, defina as seguintes variáveis de ambiente:
      • exportar SENHA="<password to generate the certificates with> "
      • export SERVERIP="<this server's IP address> "
      • export HOSTNAME="<hostname of this server> "
    • Porta: use a porta 2376 ou sua própria porta padrão para este procedimento.
      Nota:
      Verifique se as regras de firewall permitem solicitações de entrada nesta porta
    • Para saber mais, consulte Usar TLS (HTTPS) para proteger o soquete daemon do Docker.

    Por Que e Quando Desempenhar Esta Tarefa

    Por padrão, ao expor a API do Docker, as solicitações não são autenticadas, o que pode deixar sua máquina host vulnerável a ataques. A API do Docker, no entanto, oferece suporte à autenticação TLS em que as solicitações são verificadas em relação às chaves privadas públicas fornecidas na criptografia HTTPS. Nesta etapa, você cria essas chaves para o servidor e o cliente.

    Procedimento

    1. Abra uma linha de comando.
    2. Gere uma chave de autoridade de certificação autoassinada ou recupere um par de chaves de uma autoridade de certificação confiável.
      Os comandos a seguir são um exemplo. Observe que sua configuração pode variar.
      openssl genrsa -aes256 -passout pass:%PASSWORD% -out ca-key.pem 4096
      openssl req -passin pass:%PASSWORD% -new -x509 -days 365 -key ca-key.pem -sha256 -out ca.pem 
    3. Gere o par de chaves do servidor usando a chave de autoridade de certificação.
      Os comandos a seguir são um exemplo. Observe que sua configuração pode variar.
      openssl genrsa -out server-key.pem 4096
      openssl req -subj /CN=%HOSTNAME% -new -key server-key.pem -out server.csr
      echo extendedKeyUsage = clientAuth > extfile.cnf
      openssl x509 -passin pass:%PASSWORD% -req -days 365 -in server.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out server-cert.pem -extfile extfile.cnf
    4. Crie o par de chaves do cliente usando a chave de autoridade de certificação.
      Os comandos a seguir são um exemplo. Observe que sua configuração pode variar.
      openssl genrsa -out client-key.pem 4096
      openssl req -subj /CN=%HOSTNAME% -new -key client-key.pem -out client.csr
      echo subjectAltName = DNS:%HOSTNAME%,IP:%SERVERIP%,IP:127.0.0.1 > extfile.cnf
      openssl x509 -passin pass:%PASSWORD% -req -days 365 -in client.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out client-cert.pem -extfile extfile.cnf
    5. Importe a chave pública da CA e o par de chaves do cliente para um armazenamento de chaves Java.
      Essas instruções são um exemplo. Sua configuração pode variar.

      Crie o arquivo de armazenamento de chaves e crie uma senha para ele (e salve para uso posterior): keytool -genkey -keyalg RSA -alias dse -keystore my.keystore

      Exclua uma entrada padrão do arquivo de armazenamento de chaves: keytool -delete -alias dse -keystore my.keystore

      Nota:
      Esta entrada é gerada automaticamente, portanto, não é necessária.

      Importe a chave pública da CA para o armazenamento de chaves: keytool -import -keystore my.keystore -trustcacerts -alias ca -file ca.pem

      Importar o par de chaves do cliente
      Nota:
      Você está criando um novo arquivo de armazenamento de chaves pkcs12 e importando o par de chaves para ele. Em seguida, copie o conteúdo para o arquivo de armazenamento de chaves original.
      • openssl pkcs12 -export -name clientkeypair -in client-cert.pem -inkey client-key.pem -out clientkeypair.p12
      • keytool -importkeystore -destkeystore my.keystore -srckeystore clientkeypair.p12 -srcstoretype pkcs12 -alias clientkeypair

      Agora que você adicionou todos os certificados ao arquivo de armazenamento de chaves, salve o arquivo my.keystore para mais tarde, pois ele será carregado para a instância ServiceNow. Além disso, lembre-se da senha que você inseriu quando solicitado a criar o arquivo de armazenamento de chaves; será necessário inseri-lo em um formulário na instância ServiceNow.