Eu fiz com uma senha e com os seguintes campos como root
openssl req -x509 -days 365 -newkey rsa:2048 -keyout /etc/ssl/apache.key \
-out /etc/ssl/apache.crt
Campos
Country: FI
State: Pirkanmaa
Locality: Tampere
Organization: masi
Organizational Unit Name: SSL Certificate Test
CommonName: 192.168.1.107/owncloud
EmailAddress: [email protected]
Saída: erro de handshake SSL em HTTPS. Saída esperada: conexão HTTPS. HTTP funciona.
O CommonName deve incluir o URL para onde você quer ir, o thread do owncloud aqui . Eu tentei sem sucesso em commonname
192.168.1.107/owncloud
192.168.1.107/
Teste o SO do servidor: Debian 8.5.
Servidor: Raspberry Pi 3b. Owncloud-server: 8.2.5. Owncloud-client: 2.1.1. Sistemas-cliente: Debian 8.5.
openssl
certificates
Léo Léopold Hertz 준영
fonte
fonte
Centos 7 / Vagrant / Chrome Browser
.Respostas:
Você não pode usar este comando para gerar um certificado X.509 bem formado. Ele ficará mal formado porque o nome do host é colocado no Common Name (CN) . A colocação de um nome de host ou endereço IP na CN é preterida pelo IETF (a maioria das ferramentas, como
wget
ecurl
) e pelos Fóruns da CA / B (CA e navegadores).De acordo com os Fóruns IETF e CA / B, os nomes dos servidores e os endereços IP sempre aparecem no nome alternativo do assunto (SAN) . Para obter as regras, consulte RFC 5280, Perfil de infraestrutura de chave pública da Internet X.509 e perfil da lista de revogação de certificados (CRL) e requisitos de linha de base do fórum do CA / Browser .
Você precisa principalmente usar um arquivo de configuração do OpenSSL e adaptá-lo às suas necessidades. Abaixo está um exemplo de um que eu uso. É chamado
example-com.conf
e passado ao comando OpenSSL via-config example-com.conf
.Além disso , note bem : todas as máquinas a pretensão de ser
localhost
,localhost.localdomain
etc. Tenha cuidado com a emissão de certificados paralocalhost
. Estou não dizendo não fazê-lo; apenas entenda que existem alguns riscos envolvidos.As alternativas
localhost
são: (1) executar o DNS e emitir certificados para o nome DNS da máquina. Ou (2) use IP estático e inclua o endereço IP estático.Os Navegadores ainda fornecerão avisos sobre um certificado autoassinado que não retorne a uma raiz confiável. Ferramentas gostam
curl
ewget
não reclamam, mas você ainda precisa confiar em você mesmo com uma opção como cURL--cafile
. Para superar o problema de confiança do navegador, você precisa se tornar seu próprio CA."Tornar-se seu próprio CA" é conhecido como executar uma PKI privada. Não há muito nisso. Você pode fazer tudo o que uma CA pública pode fazer. A única coisa diferente é que você precisará instalar seu certificado CA raiz nas várias lojas. Não é diferente do que, digamos, usar cURL's
cacerts.pm
.cacerts.pm
é apenas uma coleção de Root CAs e agora você se juntou ao clube.Se você se tornar seu próprio CA, grave sua chave privada da CA Raiz em disco e mantenha-a offline. Em seguida, coloque-o na sua unidade de CD / DVD quando precisar assinar uma solicitação de assinatura. Agora você está emitindo certificados como uma CA pública.
Nada disso é terrivelmente difícil depois que você assina uma ou duas solicitações de assinatura. Eu tenho um PKI particular há anos em casa. Todos os meus dispositivos e gadgets confiam na minha CA.
Para obter mais informações sobre como se tornar sua própria CA, consulte Como assinar uma solicitação de assinatura de certificado com sua autoridade de certificação e Como criar um certificado autoassinado com openssl? .
Dos comentários no arquivo de configuração abaixo ...
Autoassinado (observe a adição de -x509)
Solicitação de assinatura (observe a falta de -x509)
Imprimir um autoassinado
Imprimir uma solicitação de assinatura
Arquivo de configuração
Pode ser necessário fazer o seguinte no Chrome. Caso contrário, o Chrome poderá reclamar que um Nome Comum é inválido (
ERR_CERT_COMMON_NAME_INVALID
) . Não tenho certeza de qual é a relação entre um endereço IP na SAN e uma CN nessa instância.fonte
sudo
. Talvez seu.rnd
arquivo seja de propriedade deroot
. Se sim, tente asudo chown -R masi:masi /home/masi
. Então você poderá ler e escrever nele.x509
nele (exatamente como o comentário diz).O
CommonName
deve corresponder ao que for enviado comoHost:
cabeçalho na solicitação HTTP. No seu caso, seria192.168.1.107
(sem uma barra à direita).Configurar nome do host para um servidor da web
Pessoalmente, eu configuraria um nome de host amigável para o servidor web. Na configuração do Apache de email ou na configuração do host virtual (provavelmente nas
/etc/apache2/sites-enabled/000-default.conf
distribuições baseadas no Debian), use a diretivaServerName
ouServerAlias
, por exemplo,Reinicie o Apache e, em seguida, configure o DNS ou (mais simplesmente) adicione uma entrada em cada cliente
/etc/hosts
para apontá-la para o endereço IP correto, por exemplo,fonte
192.168.1.107
. O outro segmento diz que você deve incluir o subdomínio. Eu acho que isso implica192.168.1.107/owncloud
. No entanto, eu posso estar errado.ServerName owncloud.masi
no.../sites-enabled/000-default.conf
. O nome comum da chave SSL é owncloud.masi ?ServerAlias
?