Il s'agit de la commande gnutls-serv qui peut être exécutée dans le fournisseur d'hébergement gratuit OnWorks en utilisant l'un de nos multiples postes de travail en ligne gratuits tels que Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS
PROGRAMME:
Nom
gnutls-serv - Serveur GnuTLS
SYNOPSIS
gnutls-serv [-drapeaux] [-drapeau [Plus-value]] [--option-nom[[=| ]Plus-value]]
Tous les arguments doivent être des options.
DESCRIPTION
Programme serveur qui écoute les connexions TLS entrantes.
OPTIONS
-d nombre, --déboguer=nombre
Activer le débogage. Cette option prend un nombre entier comme argument. La valeur
of nombre est contraint d'être :
dans la plage 0 à 9999
Spécifie le niveau de débogage.
--pas de ticket
N'acceptez pas les tickets de session.
-g, --produire
Générez des paramètres Diffie-Hellman.
-q, --silencieux
Supprimer certains messages.
--nodb N'utilisez pas de base de données de reprise.
--http Agir comme un serveur HTTP.
--écho Agir en tant que serveur Echo.
-u, --udp
Utilisez DTLS (datagramme TLS) sur UDP.
--mtu=nombre
Définissez le MTU pour le datagramme TLS. Cette option prend un nombre entier comme argument.
La valeur de nombre est contraint d'être :
dans la plage 0 à 17000
--srtp-profils=un magnifique
Proposez des profils SRTP.
-a, --disable-client-cert
Ne demandez pas de certificat client.
-r, --require-client-cert
Exiger un certificat client.
--verify-client-cert
Si un certificat client est envoyé, vérifiez-le.
Ne nécessite pas, mais si un certificat client est envoyé, vérifiez-le et fermez le
connexion si invalide.
-b, --battement de coeur
Activez la prise en charge du rythme cardiaque.
Pingez régulièrement le client via des messages d'extension de pulsation
--x509fmtder
Utilisez le format DER pour les certificats à lire.
--priorité=un magnifique
Chaîne de priorités.
Algorithmes et protocoles TLS à activer. Vous pouvez utiliser des ensembles prédéfinis de suites de chiffrement
tels que PERFORMANCE, NORMAL, SECURE128, SECURE256. La valeur par défaut est NORMALE.
Consultez le manuel GnuTLS dans la section « Chaînes prioritaires » pour plus d'informations sur
mots clés autorisés
--dhparams=filet
Fichier de paramètres DH à utiliser.
--x509cafile=un magnifique
Fichier de certificat ou URL PKCS #11 à utiliser.
--x509crlfichier=filet
Fichier CRL à utiliser.
--pgpkeyfile=filet
Fichier de clé PGP à utiliser.
--pgpkeyring=filet
Fichier de trousseau de clés PGP à utiliser.
--pgpcertfile=filet
Fichier de clé publique PGP (certificat) à utiliser.
--x509fichierclé=un magnifique
Fichier de clé X.509 ou URL PKCS #11 à utiliser.
--x509fichiercert=un magnifique
Fichier de certificat X.509 ou URL PKCS #11 à utiliser.
--x509dsakeyfile=un magnifique
Autre fichier de clé X.509 ou URL PKCS #11 à utiliser.
--x509dsacertfile=un magnifique
Autre fichier de certificat X.509 ou URL PKCS #11 à utiliser.
--x509ecckeyfile=un magnifique
Autre fichier de clé X.509 ou URL PKCS #11 à utiliser.
--x509ecccertfile=un magnifique
Autre fichier de certificat X.509 ou URL PKCS #11 à utiliser.
--pgpsubkey=un magnifique
Sous-clé PGP à utiliser (hex ou auto).
--srppasswd=filet
Fichier de mot de passe SRP à utiliser.
--srppasswdconf=filet
Fichier de configuration du mot de passe SRP à utiliser.
--pskpasswd=filet
Fichier de mot de passe PSK à utiliser.
--pskhint=un magnifique
Indice d'identité PSK à utiliser.
--ocsp-réponse=filet
La réponse OCSP à envoyer au client.
Si le client a demandé une réponse OCSP, renvoyez les données de ce fichier au client.
-p nombre, --Port=nombre
Le port auquel se connecter. Cette option prend un nombre entier comme argument.
-l, --liste
Imprimez une liste des algorithmes et modes pris en charge.
Imprimez une liste des algorithmes et modes pris en charge. Si une chaîne prioritaire est donnée
alors seules les suites de chiffrement activées sont affichées.
--fournisseur=filet
Spécifiez la bibliothèque du fournisseur PKCS #11.
Cela remplacera les options par défaut dans /etc/gnutls/pkcs11.conf
-h, --Aidez-moi
Afficher les informations d'utilisation et quitter.
-!, --plus d'aide
Transmettez les informations d'utilisation étendue via un téléavertisseur.
-v [{v|c|n --version [{v|c|n}]}]
Sortez la version du programme et quittez. Le mode par défaut est 'v', une version simple.
Le mode 'c' imprimera les informations de copyright et 'n' imprimera le copyright complet
remarquer.
EXEMPLES
L'exécution de votre propre serveur TLS basé sur GnuTLS peut être utile lors du débogage des clients et/ou
GnuTLS lui-même. Cette section décrit comment utiliser gnutls-serv comme un simple serveur HTTPS.
Le serveur le plus basique peut être démarré en tant que :
gnutls-serv --http --priority "NORMAL:+ANON-ECDH:+ANON-DH"
Il ne prendra en charge que les suites de chiffrement anonymes, que de nombreux clients TLS refusent d'utiliser.
L'étape suivante consiste à ajouter la prise en charge de X.509. Nous générons d'abord un CA :
$ certtool --generate-privkey > x509-ca-key.pem
$ echo 'cn = GnuTLS test CA' > ca.tmpl
$ echo 'ca' >> ca.tmpl
$ echo 'cert_signing_key' >> ca.tmpl
$ certtool --generate-self-signed --load-privkey x509-ca-key.pem --template ca.tmpl --outfile x509-ca.pem
Générez ensuite un certificat de serveur. N'oubliez pas de remplacer la valeur dns_name par le nom de
votre hôte de serveur, ou ignorez cette commande pour éviter le champ.
$ certtool --generate-privkey > x509-server-key.pem
$ echo 'organisation = serveur de test GnuTLS' > server.tmpl
$ echo 'cn = test.gnutls.org' >> server.tmpl
$ echo 'tls_www_server' >> server.tmpl
$ echo 'encryption_key' >> server.tmpl
$ echo 'signing_key' >> server.tmpl
$ echo 'dns_name = test.gnutls.org' >> server.tmpl
$ certtool --generate-certificate --load-privkey x509-server-key.pem --load-ca-certificate x509-ca.pem --load-ca-privkey x509-ca-key.pem --template server. tmpl --outfile x509-server.pem
Pour une utilisation dans le client, vous souhaiterez peut-être également générer un certificat client.
$ certtool --generate-privkey > x509-client-key.pem
$ echo 'cn = client de test GnuTLS' > client.tmpl
$ echo 'tls_www_client' >> client.tmpl
$ echo 'encryption_key' >> client.tmpl
$ echo 'signing_key' >> client.tmpl
$ certtool --generate-certificate --load-privkey x509-client-key.pem --load-ca-certificate x509-ca.pem --load-ca-privkey x509-ca-key.pem --template client. tmpl --outfile x509-client.pem
Pour pouvoir importer la clé/le certificat client dans certaines applications, vous devrez
convertissez-les en une structure PKCS#12. Cela crypte également la clé sensible à la sécurité avec
Un mot de passe.
$ certtool --to-p12 --load-ca-certificate x509-ca.pem --load-privkey x509-client-key.pem --load-certificate x509-client.pem --outder --outfile x509-client .p12
Pour le glaçage, nous allons également créer un certificat proxy pour le client.
$ certtool --generate-privkey > x509-proxy-key.pem
$ echo 'cn = proxy client de test GnuTLS' > proxy.tmpl
$ certtool --generate-proxy --load-privkey x509-proxy-key.pem --load-ca-certificate x509-client.pem --load-ca-privkey x509-client-key.pem --load-certificate x509-client.pem --template proxy.tmpl --outfile x509-proxy.pem
Redémarrez ensuite le serveur :
$ gnutls-serv --http --x509cafile x509-ca.pem --x509keyfile x509-server-key.pem --x509certfile x509-server.pem
Essayez de vous connecter au serveur à l'aide de votre navigateur Web. Notez que le serveur écoute le port
5556 par défaut.
Pendant que vous y êtes, pour autoriser les connexions utilisant DSA, vous pouvez également créer une clé DSA et
certificat pour le serveur. Ces informations d'identification seront utilisées dans l'exemple final ci-dessous.
$ certtool --generate-privkey --dsa > x509-server-key-dsa.pem
$ certtool --generate-certificate --load-privkey x509-server-key-dsa.pem --load-ca-certificate x509-ca.pem --load-ca-privkey x509-ca-key.pem --template serveur.tmpl --outfile x509-server-dsa.pem
L'étape suivante consiste à créer des informations d'identification OpenPGP pour le serveur.
gpg --gen-clé
Notez l'identifiant de clé OpenPGP de la clé nouvellement générée, il était ici
5D1D14D8. Vous devrez exporter la clé pour que GnuTLS puisse l'utiliser.
gpg -a --export 5D1D14D8 > openpgp-server.txt
gpg --export 5D1D14D8 > openpgp-server.bin
gpg --export-secret-keys 5D1D14D8 > openpgp-server-key.bin
gpg -a --export-secret-keys 5D1D14D8 > openpgp-server-key.txt
Commençons le serveur avec la prise en charge des identifiants OpenPGP :
gnutls-serv --http --priority NORMAL:+CTYPE-OPENPGP --pgpkeyfile openpgp-server-key.txt --pgpcertfile openpgp-server.txt
L'étape suivante consiste à ajouter la prise en charge de l'authentification SRP. Cela nécessite un fichier de mot de passe SRP
Créé avec outil srp. Pour démarrer le serveur avec le support SRP :
gnutls-serv --http --priority NORMAL:+SRP-RSA:+SRP --srppasswdconf srp-tpasswd.conf --srppasswd srp-passwd.txt
Commençons également un serveur prenant en charge PSK. Cela nécessiterait un fichier de mot de passe créé
avec psktool.
gnutls-serv --http --priority NORMAL:+ECDHE-PSK:+PSK --pskpasswd psk-passwd.txt
Enfin, nous démarrons le serveur avec tous les paramètres précédents et vous obtenez cette commande :
gnutls-serv --http --priority NORMAL:+PSK:+SRP:+CTYPE-OPENPGP --x509cafile x509-ca.pem --x509keyfile x509-server-key.pem --x509certfile x509-server.pem --x509dsakeyfile x509-server-key-dsa.pem --x509dsacertfile x509-server-dsa.pem --pgpkeyfile openpgp-server-key.txt --pgpcertfile openpgp-server.txt --srppasswdconf srp-tpasswd.conf --srppasswd srp- passwd.txt --pskpasswd psk-passwd.txt
EXIT STATUT
L'une des valeurs de sortie suivantes sera renvoyée :
0 (EXIT_SUCCESS)
Exécution réussie du programme.
1 (EXIT_FAILURE)
L'opération a échoué ou la syntaxe de la commande n'était pas valide.
70 (EX_LOGICIEL)
libopts avait une erreur opérationnelle interne. Veuillez le signaler à autogen-
[email protected]. Merci.
Utilisez gnutls-serv en ligne en utilisant les services onworks.net