UniFi - controlador Custom SSL usando o Mac OSX Keychain assistente e OpenSSL

Visão geral


Neste artigo os usuários vão aprender a evitar problemas com o navegador Safari e "websocket erros" (exemplo: "este site não é confiável").

 

O problema vai além de confiar explicitamente o certificado SSL padrão (como este sozinho não funciona). Criando sua própria autoridade de certificação (CA) e substituir o certificado padrão com este certificado você pode evitar os erros de web. Esta é a história dessa tentativa, com instruções alguém deve querer experimentá-lo por si mesmos. (Também, para mim, só no caso eu tenho que fazer isso de novo!)

 

Uma nota rápida antes de começar: você precisará de OpenSSL e computador rodando Mac OSX para concluir isto.

Em breve, os passos são:

  1. Criar uma autoridade de certificação
  2. Criar um certificado assinado pela CA acabou de criar
  3. Exportar o certificado e a chave privada
  4. Preparar um arquivo de certificado
  5. Carregar o arquivo de certificado para o roteador e substituir o padrão

Passos


Então, em detalhe, as etapas são:

1. criar uma autoridade de certificação

Eu usei o Keychain assistente para fazer isto, tenho certeza que é possível fazer com OpenSSL, mas eu queria meu OS nativamente confiar esta CA.

  1. Abra o assistente de porta-chaves (aplicações > utilitários > Keychain assistente)
  2. No menu "Assistente de porta-chaves", selecione "Assistente de certificado" e depois "criar uma autoridade de certificação... '
  3. Para a sua autoridade de certificado "criar" página...
    um) te dar CA um nome, ( Lembre-se este tipo de identidade de name)
    b) = auto assinado Root CA (é o certificado de usuário default),
    c) = SSL Server
    d) verificar "Deixa-me substituir defaults"
    e) opcional: desmarque a opção "Tornar esta CA o padrão"
    f) opcional: altere o campo "Email de" para um e-mail de seu choosing
    g) Hit "Continuar"
  4. Para a primeira página de "Informações de criar"...
    um) número de série = 1
    b) o período de validade (dias) = 3650 (você pode definir isso para o que quiser, mas você precisará refazer isso após o expires
    c) prazo de validade opcional: Verifique a "Criar um site do CA" e defina a localização.  (Provavelmente não fazer isso)
    d) desmarque a opção "Sinal seu invitation"
    e) Hit "Continuar"
  5. Para a segunda página "Criar informações"...
    a) preencha os dados como você vê o ajuste e continua para a próxima página
  6. Para a página "Chave uso extensão para esta CA"...
    um) deixar estes detalhes como eles são padronizados, continuar a bater
  7. Para a página "Chave uso extensão para esta CA"...
    um) deixar estes detalhes como eles são padronizados, continuar a bater
  8. Para a "chave extensão de uso para os usuários dessa CA" página...
    um) deixar estes detalhes como eles são padronizados, continuar a bater
  9. Para a página de "Extended chave uso extensão para esta CA"...
    um) deixar estes detalhes como eles são padronizados, continuar a bater
  10. Para o "Extended chave extensão de uso para os usuários dessa CA" página...
    um) deixar estes detalhes como eles são padronizados, continuar a bater
  11. Para a página de "Base restrições extensão para esta CA,"...
    um) deixar estes detalhes como eles são padronizados, continuar a bater
  12. Para a "extensão de base restrições para os usuários dessa CA" página...
    um) deixar estes detalhes como eles são padronizados, continuar a bater
  13. Para a página de "Assunto alternativo nome extensão para esta CA"...
    um) deixar estes detalhes como eles são padronizados, continuar a bater
  14. Para o "assunto alternativo nome extensão para os usuários dessa CA" página...
    um) deixar estes detalhes como eles são padronizados, continuar a bater
  15. Para o "especificar um local para o certificado" página...
    um) opcional: alterar o local para o chaveiro ( por favor, lembre-se este Keychain)
    b) verificar "nesta máquina, confiar em certificados assinados por este CA"
    c) Hit Create

2. Crie um certificado assinado pela CA acabou de criar

Continuando com acesso às chaves...

  1. Navegue até as chaves onde você salvou o certificado da autoridade e encontrar a chave privada do seu CA (haverá três com o mesmo nome: um certificado, chave pública e chave privada)
  2. Botão direito do mouse sobre a "chave privada" e clique em "Criar um certificado com xxxxx..."
  3. Sobre o page
    a) de "Create your Certificate" dê um nome, eu gosto de usar o nome do host do meu router (ubnt.local IE) ( Lembre-se este tipo de identidade de name)
    b) = "tipo de certificado de Lead"
    c) = "SSL Server"
    d) Check "Deixa-me substituir defaults"
    e) Hit continuar
  4. Sobre o número de série "Informações sobre o certificado" page
    a) = 1
    b) o período de validade (dias) = 365 (você pode definir isso para o que quiser, mas você precisará recriar este certificado após a validade período expires)
    c) Hit continuar
  5. Para a segunda página "Criar informações"...
    a) preencha os dados como você vê o ajuste e continua para a próxima página
  6. Para a página de "Extensão de uso de chave"...
    um) deixar estes detalhes como eles são padronizados, continuar a bater
  7. Para a página de "Extensão de uso de chave estendido"...
    um) cheque "SSL Server Authentication"
    b) desmarque todas as outras capacidades
  8. Para a página de "Extensão de restrições básicas"...
    um) deixar estes detalhes como eles são padronizados, continuar a bater
  9. Para a página de "Extensão de nome alternativo de assunto"...
    um) rfc822Name
    b) claro claro NomeDns URI
    c) = url/hostname de seu gui (ie. ubnt.local)
    d) iPAddress = endereço de IP de seu gui
  10. Para o "especificar um local para o certificado" página...
    um) opcional: alterar o local para o chaveiro ( por favor lembre-se este Keychain)
    b) bateu criar

  3. exportar o certificado e chave privada

  1. Navegue até as chaves onde você salvou o certificado e encontrá-lo é a chave privada e certificado (haverá três com o mesmo nome: um certificado, chave pública e chave privada)
  2. Clique com o botão direito sobre o certificado e escolha export
    a), salve o arquivo, usando o formato de arquivo de certificado ( se lembra o nome do arquivo e a localização deste arquivo! )
  3. Clique com o botão direito sobre a chave privada e escolha export
    a), salve o arquivo, usando a troca de informações pessoais (P12) formato de arquivo ( Remember o nome do arquivo e a localização do este arquivo! )

4. preparar um arquivo de certificado

Eu usei o OpenSSL para fazer isso, embora eu tenho certeza que existem outras maneiras

Você vai precisar de comando linha experiência daqui em... desculpe!

  1. Abra uma janela de terminal (aplicações > Utilitários > Terminal)
  2. Opcional: Altere o diretório para a pasta que contém o seu certificado / privada arquivos de chave
    1. cd path_to_files
  3. Converter o arquivo de certificado para um arquivo pem (substitua o arquivo nomes conforme apropriado)
  4. openssl x509 -inform der -in certificate.cer -out certificate.pem
  5. Converter o arquivo de chave particular em um arquivo pem (substitua o arquivo nomes conforme apropriado)
  6. openssl pkcs12 -in privateKey.p12 -out privateKey.pem -nodes 
  7. Concatenar os dois arquivos juntos (substitua os nomes de arquivo, conforme o caso)
  8. cat privateKey.pem certificate.pem > server.pem 

 

5. carregar o arquivo de certificado para o roteador

Continuando com Terminal

  1. SSH para o roteador
    1. ssh router_ip_address -l your_user_name
      (enter your password when requested)
  2. Você vai precisar preparar uma pasta no roteador que você possui, ou caso contrário tenha permissões para, eu usei a minha pasta de início (substituir nomes de arquivos / pastas como apropriado)
    1. cd /home
      sudo chown your_user_name your_user_name
  3. Abrir uma nova janela de Terminal (cmd + n)
  4. Na nova janela de terminal, copie o arquivo para o roteador (substituir nomes de arquivos / pastas como apropriado)
  5. scp server.pem your_user_name@router_ip_address:~/server.pem
    (enter your password when requested)
  6. Na terminal original janela, mudança de Propriedade do arquivo
    sudo chown www-data:www-data ~/server.pem
  7. (Opcional) Na janela do terminal original, fazer backup do certificado padrão
  8. sudo cp /etc/lighttpd/server.pem ~/server.pem.backup
  9. Na janela do terminal original, substituir o certificado padrão
    1. sudo cp ~/server.pem /etc/lighttpd/server.pem
  10. Definir permissões no arquivo de certificado novo
    1. sudo chmod 400 /etc/lighttpd/server.pem
  11. Reinicie o lighttpd 
  12. sudo /usr/sbin/lighttpd -f /etc/lighttpd/lighttpd.conf

12. teste!

 

Postos de apoio:

http://community.UBNT.com/T5/EdgeMAX/Custom-SSL-CErtificates/td-p/405628
http://community.UBNT.com/T5/EdgeMAX/replacing-The-self-signed-SSL-certificados/td-p/381481
http://community.UBNT.com/T5/EdgeMAX/problem-with-Lighttpd-e-servidor-pem/td-p/771390
https://www.sslshopper.com/article-Most-Common-Opeo NSSL-commands.html
http://www.techrepublic.com/blog/Apple-in-the-enterprise/Create-Your-Own-SSL-CA-with-the-os-x-keycha...

 

  / Ubiquiti Employee

Powered by Zendesk