Contents

Introduction

Prerequisites

Requirements

Componentes Utilizados

Problema

Solução

Introduction

Este documento descreve como criar um certificado autoassinado que pode ser usado pelo CloudCenter com vários URLs.

Prerequisites

Requirements

A Cisco recomenda que você tenha conhecimento destes tópicos:

- Certificados

- Linux

Componentes Utilizados

As informações neste documento são baseadas em CentOS7.

The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If your network is live, make sure that you understand the potential impact of any command.

Problema

Os certificados que vêm como padrão com o CloudCenter, ou que podem ser criados com o uso do assistente de configuração do Cisco Call Manager (CCM), não têm um nome alternativo de assunto (SAN) que alguns navegadores, como o Google Chrome, tratam como um erro e o avisam. Isso pode ser substituído, mas sem SANs, um certificado só pode ser válido de um URL específico.

Por exemplo, se você tiver um certificado válido para o endereço IP 10.11.12.13, se você tiver um nome de Sistema de Nome de Domínio (DNS) de www.opencart.com, receberá um erro de certificado porque esse URL não é para que serve o certificado (isto é verdade mesmo se www.opencart.com estiver listado no arquivo de hosts como o que pertence a 10.11.1.1 2.13). Isso pode ser feito se os sublocatários do CloudCenter estiverem usando o SSO único (Single Sign On), pois cada servidor SSO tem seu próprio URL.

Solução

A maneira mais fácil de corrigir esse problema é criar um novo certificado autoassinado que tenha SANs que liste qualquer URL que o direciona ao mesmo endereço IP. O guia é uma tentativa de aplicar as melhores práticas a esse processo.

Etapa 1. Navegue até o diretório raiz e faça uma nova pasta para abrigar os certificados:

sudo -s

cd /root

mkdir ca

Etapa 2. Navegue até a nova pasta e faça subpastas para organizar os certificados, as chaves privadas e os registros.

cd ca

mkdir certs crl newcerts private

chmod 700 private

touch index.txt

echo 1000 > serial

Etapa 3. Copie o conteúdo do CAopenssl.conf para /root/ca/openssl.cnf

Note: Este arquivo contém as opções de configuração para uma autoridade de certificação (CA) e opções padrão que podem ser adequadas para o CloudCenter.

Etapa 4. Gere uma chave privada e um certificado para a AC.

openssl genrsa -aes256 -out private/ca.key.pem 4096

chmod 400 private/ca.key.pem

openssl req -config openssl.cnf -key private/ca.key.pem -new -x509 -days 7300 -sha256 -extensions v3_ca -out certs/ca.cert.pem

chmod 444 certs/ca.cert.pem

Etapa 5. Sua CA é a forma mais avançada de verificar se qualquer certificado é válido, esse certificado nunca deve ser acessado por pessoas não autorizadas e nunca deve ser exposto à Internet. Devido a essa restrição, você precisa criar uma CA intermediária que assine o certificado final, isso cria uma pausa na qual, se o certificado de autoridade intermediária for comprometido, ele poderá ser revogado e uma nova será emitida.

Etapa 6. Crie um novo subdiretório para a CA intermediária.

mkdir /root/ca/intermediate

cd /root/ca/intermediate/

mkdir certs crl csr newcerts private

chmod 700 private

touch index.txt

echo 1000 > serial

echo 1000 > /root/ca/intermediate/crlnumber

Passo 7. Copie o conteúdo de Intermediateopenssl.conf para /root/ca/intermediate/openssl.cnf .

Note: Este arquivo contém opções de configuração quase idênticas para a CA, além de alguns pequenos ajustes para torná-lo específico para um intermediário.

Etapa 8. Gere a chave intermediária e o certificado.

cd /root/ca

openssl genrsa -aes256 -out intermediate/private/intermediate.key.pem 4096

chmod 400 intermediate/private/intermediate.key.pem

openssl req -config intermediate/openssl.cnf -new -sha256 -key intermediate/private/intermediate.key.pem -out intermediate/csr/intermediate.csr.pem

Etapa 9. Assinar o certificado intermediário com o certificado CA, cria uma cadeia de confiança que o navegador usa para verificar a autenticidade de um certificado.

openssl ca -config openssl.cnf -extensions v3_intermediate_ca -days 3650 -notext -md sha256 -in intermediate/csr/intermediate.csr.pem -out intermediate/certs/intermediate.cert.pem

chmod 444 intermediate/certs/intermediate.cert.pem

Etapa 10. Crie uma cadeia de CA, uma vez que não deseja a AC na Internet, você pode criar uma cadeia de CA que os navegadores usam para verificar a autenticidade até a CA.

cat intermediate/certs/intermediate.cert.pem certs/ca.cert.pem > intermediate/certs/ca-chain.cert.pem

chmod 444 intermediate/certs/ca-chain.cert.pem

Etapa 11. Crie uma nova chave e certificado para o CCM.

openssl genrsa -out intermediate/private/ccm.com.key.pem 2048

openssl req -new -sha256 -key intermediate/private/ccm.com.key.pem -subj "/C=US/ST=NC/O=Cisco/CN=ccm.com" -reqexts SAN -config <(cat intermediate/openssl.cnf <(printf "[SAN]\nsubjectAltName=DNS:ccm.com,DNS:www.ccm.com,IP:10.11.12.13")) -out intermediate/csr/ccm.com.csr

Etapa 12. Isso tem todos os campos obrigatórios no comando e precisa ser editado manualmente.

- /C=EUA refere-se ao país (limite de 2 caracteres)

- /ST=NC refere-se ao Estado e pode incluir espaços

- /O=A Cisco refere-se à Organização

- /CN=ccm.com refere-se ao nome comum, que deve ser o URL principal usado para acessar o CCM.

- SAN\nsubjectAltName= são os nomes alternativos, o nome comum deve estar nessa lista e não há limite para quantas SANs você tem.

Etapa 13. Assinar o certificado final utilizando o certificado intermédio.

openssl ca -config intermediate/openssl.cnf -extensions server_cert -days 375 -notext -md sha256 -in intermediate/csr/ccm.com.csr -out intermediate/certs/ccm.com.cert.pem

Etapa 14. Verifique se o certificado foi assinado corretamente.

openssl verify -CAfile intermediate/certs/ca-chain.cert.pem intermediate/certs/ccm.com.cert.pem

Etapa 15. Ele pode retornar um OK ou um Fail.

Etapa 16. Copie o novo certificado, é a chave e a cadeia CA para a pasta Catalina.

cd /root/ca/intermediate/certs

cp ccm.com.cert.pem /usr/local/tomcat/conf/ssl/ccm.com.crt

cp ca-chain.cert.pem /usr/local/tomcat/conf/ssl/ca-chain.crt

cd ../private

cp ccm.com.key.pem /usr/local/tomcat/conf/ssl/ccm.com.key

Etapa 17. Conceda a propriedade do cliente e defina as permissões corretamente.

chown cliqruser:cliqruser ccm.com.crt

chown cliqruser:cliqruser ccm.com.key

chown cliqruser:cliqruser ca-chain.crt

chmod 644 ccm.com.crt

chmod 644 ccm.com.key

chmod 644 ca-chain.crt

Etapa 18. Faça backup do arquivo server.xml antes de fazer alterações.

cd ..

cp server.xml server.xml.bak

Etapa 19. Editar server.xml:

1. Localize a seção que começa com <Connector port="10443" maxHttpHeaderSize="8192"

2. Altere SSLCertificateFile para apontar para ccm.com.crt

3. Alterar SSLCertificateKeyFile para apontar para ccm.com.key

4. Alterar SSLCACertificateFile para apontar para ca-chain.crt

Etapa 20. Reinicie o Tomcat.

service tomcat stop

service tomcat start

Etapa 21. O CCM agora usa o novo certificado válido para todos os nomes DNS e endereços IP especificados na Etapa 13.

Etapa 22. Como a CA foi criada no momento do guia, os navegadores não a reconhecerão como válida por padrão, é necessário importar manualmente o certificado.

Etapa 23. Navegue até o CCM com o uso de qualquer URL válido e pressione Ctrl+Shift+i, o que abre as ferramentas do desenvolvedor.

Etapa 24. Selecione Exibir certificado conforme mostrado na imagem.

Etapa 25. Selecione Detalhes conforme mostrado na imagem.

Etapa 26. Selecione Copiar para arquivo conforme mostrado na imagem.

Etapa 27. Se você obtiver erros sobre uma CA não confiável, navegue até Certification Path para exibir o certificado Intermediário e Raiz. Você pode clicar neles e exibir seu certificado e também copiá-los para arquivos como mostrado na imagem.

Etapa 28. Depois de fazer o download dos certificados, siga as instruções do sistema operacional (SO) ou do navegador para instalar esses certificados como autoridade confiável e autoridades intermediárias.