Lo hice con una contraseña y con los siguientes 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]
Salida: error de protocolo de enlace SSL en HTTPS. Salida esperada: conexión HTTPS. HTTP funciona.
CommonName debe incluir la URL a la que desea ir, el hilo de owncloud aquí . He intentado sin éxito en commonname
192.168.1.107/owncloud
192.168.1.107/
Prueba del sistema operativo para el 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 준영
fuente
fuente
Centos 7 / Vagrant / Chrome Browser
.Respuestas:
No puede usar este comando para generar un certificado X.509 bien formado. Su formato será incorrecto porque el nombre de host se coloca en el Nombre común (CN) . La colocación de un nombre de host o una dirección IP en el CN está en desuso por parte de IETF (la mayoría de las herramientas, me gusta
wget
ycurl
) y de los foros de CA / B (CA y navegadores).De acuerdo con los foros IETF y CA / B, los nombres de los servidores y las direcciones IP siempre van en el Nombre alternativo del sujeto (SAN) . Para conocer las reglas, consulte el RFC 5280, el Certificado de Infraestructura de Clave Pública de Internet X.509 y el Perfil de la Lista de Revocación de Certificados (CRL) y los Requisitos de Referencia del Foro de CA / Navegador .
En su mayoría, necesita usar un archivo de configuración de OpenSSL y adaptarlo a sus necesidades. A continuación se muestra un ejemplo de uno que uso. Se llama
example-com.conf
y se pasa al comando OpenSSL a través de-config example-com.conf
.También tenga en cuenta así : todas las máquinas dicen ser
localhost
,localhost.localdomain
etc. Tenga cuidado con la emisión de certificados paralocalhost
. No digo que no lo hagas; solo entiendo que hay algunos riesgos involucrados.Las alternativas
localhost
son: (1) ejecutar DNS y emitir certificados para el nombre DNS de la máquina. O, (2) use IP estática e incluya la dirección IP estática.Los navegadores aún le darán advertencias sobre un certificado autofirmado que no se encadena a una raíz confiable. Las herramientas tienen gusto
curl
ywget
no se quejarán, pero aún así debe confiar en su propia firma con una opción como cURL's--cafile
. Para superar el problema de confianza del navegador, debe convertirse en su propia CA."Convertirse en su propia CA" se conoce como ejecutar una PKI privada. No hay mucho de eso. Puede hacer todo lo que una CA pública puede hacer. Lo único diferente es que necesitará instalar su certificado de CA raíz en las distintas tiendas. No es diferente a, digamos, usar cURL's
cacerts.pm
.cacerts.pm
es solo una colección de Root CA's, y ahora te has unido al club.Si se convierte en su propia CA, asegúrese de grabar su clave privada de CA raíz en un disco y mantenerla fuera de línea. Luego, colóquelo en su unidad de CD / DVD cuando necesite firmar una solicitud de firma. Ahora está emitiendo certificados como una CA pública.
Nada de esto es terriblemente difícil una vez que firma una o dos solicitudes de firma. He estado ejecutando un PKI privado durante años en la casa. Todos mis dispositivos y gadgets confían en mi CA.
Para obtener más información sobre cómo convertirse en su propia CA, consulte ¿Cómo firmar la Solicitud de firma de certificado con su Autoridad de certificación y Cómo crear un certificado autofirmado con openssl? .
De los comentarios en el archivo de configuración a continuación ...
Autofirmado (tenga en cuenta la adición de -x509)
Solicitud de firma (tenga en cuenta la falta de -x509)
Imprima un autofirmado
Imprimir una solicitud de firma
Archivo de configuración
Es posible que deba hacer lo siguiente para Chrome. De lo contrario, Chrome puede quejarse de que un Nombre común no es válido (
ERR_CERT_COMMON_NAME_INVALID
) . No estoy seguro de cuál es la relación entre una dirección IP en la SAN y un CN en este caso.fuente
sudo
. Tal vez su.rnd
archivo es propiedad deroot
. Si es así, prueba asudo chown -R masi:masi /home/masi
. Entonces podrás leerlo y escribirle.x509
(tal como dice el comentario).El
CommonName
debe corresponder con lo que se envíe comoHost:
encabezado en la solicitud HTTP. En su caso, eso sería192.168.1.107
(sin una barra inclinada).Configurar el nombre de host para un servidor web
Personalmente, configuraría un nombre de host amigable para el servidor web. En su configuración de Apache de correo electrónico o configuración de host virtual (probablemente
/etc/apache2/sites-enabled/000-default.conf
para distribuciones basadas en Debian), use la directivaServerName
oServerAlias
, por ejemplo,Reinicie Apache y luego configure DNS o (más simplemente) agregue una entrada en cada cliente
/etc/hosts
para apuntarla a la dirección IP correcta, por ejemplo,fuente
192.168.1.107
. El otro hilo dice que debes incluir el subdominio. Creo que eso implica192.168.1.107/owncloud
. Sin embargo, puedo estar equivocado.ServerName owncloud.masi
en.../sites-enabled/000-default.conf
. ¿El nombre común de la clave SSL es owncloud.masi ?ServerAlias
?