Je l'ai fait avec un mot de passe et avec les champs suivants en tant que root
openssl req -x509 -days 365 -newkey rsa:2048 -keyout /etc/ssl/apache.key \
-out /etc/ssl/apache.crt
Des champs
Country: FI
State: Pirkanmaa
Locality: Tampere
Organization: masi
Organizational Unit Name: SSL Certificate Test
CommonName: 192.168.1.107/owncloud
EmailAddress: [email protected]
Sortie: erreur d'établissement de liaison SSL dans HTTPS. Sortie attendue: connexion HTTPS. HTTP fonctionne.
Le CommonName devrait inclure l'URL où vous voulez aller, le fil de owncloud ici . J'ai essayé en vain en commun
192.168.1.107/owncloud
192.168.1.107/
OS de test pour le serveur: Debian 8.5.
Serveur: Raspberry Pi 3b. Serveur propriétaire: 8.2.5. Owncloud-client: 2.1.1. Client système: Debian 8.5.
openssl
certificates
Léo Léopold Hertz 준영
la source
la source
Centos 7 / Vagrant / Chrome Browser
.Réponses:
Vous ne pouvez pas utiliser cette commande pour générer un certificat X.509 bien formé. Il sera mal formé car le nom d'hôte est placé dans le nom commun (CN) . Le placement d'un nom d'hôte ou d'une adresse IP dans le CN est déconseillé à la fois par l'IETF (la plupart des outils, comme
wget
etcurl
) et les forums CA / B (CA et navigateurs).Selon les forums IETF et CA / B, les noms de serveur et les adresses IP vont toujours dans le nom alternatif du sujet (SAN) . Pour les règles, voir RFC 5280, certificat d'infrastructure à clé publique Internet X.509 et profil de liste de révocation de certificats (CRL) et exigences de base du forum CA / Browser .
Vous devez principalement utiliser un fichier de configuration OpenSSL et l'adapter à vos besoins. Voici un exemple de celui que j'utilise. Il est appelé
example-com.conf
et transmis à la commande OpenSSL via-config example-com.conf
.Aussi bien noter : toutes les machines prétendent être
localhost
,localhost.localdomain
etc. Faites attention à la délivrance de certificats pourlocalhost
. Je ne dis pas ne le faites pas; comprenez simplement qu'il y a des risques.Les alternatives
localhost
sont: (1) exécuter DNS et émettre des certificats au nom DNS de la machine. Ou, (2) utilisez une adresse IP statique et incluez l'adresse IP statique.Les navigateurs vous donneront toujours des avertissements concernant un certificat auto-signé qui ne sera pas enchaîné à une racine approuvée. Des outils comme
curl
etwget
ne se plaindront pas, mais vous devez toujours vous fier à vous-même signé avec une option comme cURL--cafile
. Pour surmonter le problème de confiance du navigateur, vous devez devenir votre propre autorité de certification.«Devenir votre propre autorité de certification» est appelé exécuter une PKI privée. Il n'y a pas grand-chose. Vous pouvez faire tout ce qu'une autorité de certification publique peut faire. La seule chose différente est que vous devrez installer votre certificat d'autorité de certification racine dans les différents magasins. Ce n'est pas différent de, disons, utiliser des cURL
cacerts.pm
.cacerts.pm
n'est qu'une collection de Root CA, et maintenant vous avez rejoint le club.Si vous devenez votre propre autorité de certification, assurez-vous de graver votre clé privée d'autorité de certification racine sur le disque et de la garder hors ligne. Insérez-le ensuite dans votre lecteur de CD / DVD lorsque vous devez signer une demande de signature. Maintenant, vous émettez des certificats comme une autorité de certification publique.
Rien de tout cela n'est terriblement difficile une fois que vous avez signé une ou deux demandes de signature. Je gère une PKI privée depuis des années à la maison. Tous mes appareils et gadgets font confiance à mon autorité de certification.
Pour plus d'informations sur la manière de devenir votre propre autorité de certification, consultez Comment signer une demande de signature de certificat avec votre autorité de certification et Comment créer un certificat auto-signé avec openssl? .
D'après les commentaires dans le fichier de configuration ci-dessous ...
Auto signé (notez l'ajout de -x509)
Demande de signature (notez l'absence de -x509)
Imprimer un auto-signé
Imprimer une demande de signature
Fichier de configuration
Vous devrez peut-être effectuer les opérations suivantes pour Chrome. Sinon, Chrome peut se plaindre qu'un nom commun n'est pas valide (
ERR_CERT_COMMON_NAME_INVALID
) . Je ne sais pas quelle est la relation entre une adresse IP dans le SAN et un CN dans ce cas.la source
sudo
. Peut-être que votre.rnd
fichier appartient àroot
. Si oui, essayez asudo chown -R masi:masi /home/masi
. Ensuite, vous pourrez y lire et y écrire.x509
(comme le dit le commentaire).Le
CommonName
doit correspondre à ce qui est envoyé comme en-Host:
tête dans la requête HTTP. Dans votre cas, ce serait192.168.1.107
(sans barre oblique).Configurer le nom d'hôte d'un serveur Web
Personnellement, je configurerais un nom d'hôte convivial pour le serveur Web. Dans votre configuration de messagerie Apache ou de configuration d'hôte virtuel (probablement
/etc/apache2/sites-enabled/000-default.conf
pour les distributions basées sur Debian), utilisez la directiveServerName
ouServerAlias
, par exemple,Redémarrez Apache puis configurez DNS ou (plus simplement) ajoutez une entrée dans chaque client
/etc/hosts
pour la pointer vers la bonne adresse IP, par exemple,la source
192.168.1.107
. L'autre thread dit que vous devez inclure le sous-domaine. Je pense que cela implique192.168.1.107/owncloud
. Cependant, je peux me tromper.ServerName owncloud.masi
dans.../sites-enabled/000-default.conf
. Le nom commun de la clé SSL est-il alors owncloud.masi ?ServerAlias
?