当前位置:网站首页>Notes relatives à l'application du certificat de l'AC et de la paire de clés
Notes relatives à l'application du certificat de l'AC et de la paire de clés
2022-06-12 03:18:00 【Coffee andice】
Catalogue des articles
- Questions relatives aux certificats
- 0、Méthode commune de génération de certificats auto - signés
- 1、Aperçu de l'amarrage des certificats
- 2、Problèmes de conversion des formats
- 3、Aperçu de la relation entre le certificat et sa délivrance
Questions relatives aux certificats
Pour éviter de refaire le toilettage , Reste tranquille , Analyse ponctuelle , C'est vraiment confortable à l'arrière
Format du certificat, Les formats couramment utilisés sont: pem、jks、pkcs12
Format généré par l'interconnexion ,GénéralementpemFormat,C'est aussix509
0、Méthode commune de génération de certificats auto - signés
myssl :https://myssl.com/create_test_cert.html
samltool:https://www.samltool.com/self_signed_certs.php
1、Aperçu de l'amarrage des certificats
Dans l'ensemble, Le développement de l'amarrage est généralement divisé en deux situations
①Certificat racine fourni directement par le client (Ici, nous définissonsACertificat)
②Nous offronscsr Après la signature du client , Retour à notre certificat de signature (Ici, nous définissonsBCertificat)
1)Certificat racine fourni directement par le client
Nous avons juste besoin d'un certificat basé sur le client ,Conversion directe enjksC'est tout.
RÉFÉRENCES:https://myssl.com/cert_convert_wasm.html
2)Signature du client requise
①Générer uncsr(3Comment?)
Le processus officiel recommande de remplir le message ( En fin de compte, générer des paires de clés
(1)Générer en ligne:
https://myssl.com/csr_create.html
(2)openssl:
# req Générer un fichier de certificat de demande de signature openssl req -new -nodes -sha256 -newkey rsa:2048 -keyout [$Key_File] -out [$OpenSSL_CSR]① -new: Spécifie de construire un nouveau CSRDocumentation.
② -nodes: Le fichier clé spécifié n'est pas chiffré .
Généralement avec un suivi -newkey Utilisation continue③ -sha256: Spécifier l'algorithme de synthèse .
Algorithme de synthèse : -sha256 / -sha384 / -sha512 / -sha1④ -newkey rsa:2048 Spécifiez le type et la longueur de la clé .
Le type de clé est optionnel : rsa / ecdsa La force de la clé est facultative : 2048 / 3072 / 4096⑤ [$Key_File]: Nom du Fichier clé.
⑥ [$OpenSSL_CSR]: Chemin de stockage du fichier chiffré .
(3)keytool:
# certreq Générer un fichier de certificat de demande de signature keytool -certreq -sigalg SHA256withRSA -alias [$Alias] -keystore [$Keytool_Path] -file [$Keytool_CSR]① -sigalg: Nom de l'algorithme clé.
Type facultatif:SHA256withRSA / SHA1withDSA / SHA256withECDSA② -keysize: La longueur de la clé est2048bit.
Référence de la valeur optionnelle : 2048 (when using -genkeypair and -keyalg is "RSA") 1024 (when using -genkeypair and -keyalg is "DSA") 256 (when using -genkeypair and -keyalg is "EC") 56 (when using -genseckey and -keyalg is "DES") 168 (when using -genseckey and -keyalg is "DESede")③ [$Alias]: Alias du certificat,Personnalisable.
④ [$Keytool_Path]: Chemin d'enregistrement du fichier de certificat .
②Signature du client
Habituellement, le client donne CA Émis
(1)Utilisationopenssl Certificat auto - délivré:
openssl x509 -req -days 3650 -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt
① -days: Date d'expiration,Généralement365Multiple de,Jusqu'à10Année
②server.csr: La demande que nous avons fournie est signée csr
③ca.crt: Ca ÉmiscrtCertificat
④ca.key: Ca Clés émises
⑤server.crt: Certificat de signature généré , Pour les
(2)Utilisationkeytool Certificat auto - délivré:
keytool -gencert -infile client.csr -outfile client.cer -alias serverStore -keystore serverStore.jks -storepass 123456
① client.csr: La demande que nous avons fournie est signée csr
②client.cer: Certificat auto - délivré généré
③ serverStore: Alias du certificat délivré
④serverStore.jks:crt ParpemConvertir enjksCertificat
⑤123456: GénérerjksMot de passe chiffré pour
③Format de conversion
RÉFÉRENCES:https://myssl.com/cert_convert_wasm.html
2、Problèmes de conversion des formats
①PEM -> JKS
Cryptable ,Par
crt/certConvertir enjks, Pas de mot de passe. .( Normalement fourni javaDéveloppement et utilisation)
②PEM ->PKCS12(Aussi appeléPFX)
Cryptable ,Par
crt/certConvertir enjks, Pas de mot de passe. .( Normalement fourni C#,VB Pour le développement et l'utilisation )
3、Aperçu de la relation entre le certificat et sa délivrance
Dans l'ensemble, Appartient en fait à A Générer un certificat,Pas directement àB,B Besoin d'une preuve A,JeanA Délivrer un certificat secondaire à B,JeanBPeut êtreCA Une relation identifiée .
CA Peut être un fournisseur public , Le serveur peut également être privé en tant que CAFournisseurs.
Tips: Ce qu'on appelle un fournisseur , En fait, c'est la détection de stockage du keystore
①Par exemplejavaConstruction de validation des applications
Les applications prédéfinies sont divisées en A,B, Le préfixe du contenu correspondant sera A_XXEt B_XXPour représenterA、BApplication
(1)ConstruireA、B Applications respectivesCANoeud racine du certificat
Icialias Le nom est utilisé pour interroger l'utilisation du noeud ( Même si tout finit en minuscules , Mais je suis encore un peu têtu )
#A Serveur
keytool -genkey -alias A_root -keyalg RSA -keystore A_root.jks
#B Serveur
keytool -genkey -alias B_root -keyalg RSA -keystore B_root.jks
#VoirjksMode de certificat
keytool -v -list -keystore xxx.jks
(2)Générer un certificat
(1)Icialias Le nom est utilisé pour interroger l'utilisation du noeud
(2)A_client.cer 、B_client.cer Pour le certificat racine
# GénérerA Certificats pour le serveur A_client.cer
keytool -export -alias A_root -file A_client.cer -keystore A_root.jks
# GénérerB Certificats pour le serveur B_client.cer
keytool -export -alias B_root -file B_client.cer -keystore B_root.jks
(3)Générer une demande de certificat
Générer séparémentcsr Pour obtenir la signature de l'autre partie
#GénérerA Fichier de demande de certificat correspondant au serveur
keytool -certreq -file A.csr -alias A_root -keystore A_root.jks
#GénérerB Fichier de demande de certificat correspondant au serveur
keytool -certreq -file B.csr -alias B_root -keystore B_root.jks
#VoirCSR
openssl req -noout -text -in xxx.csr
(4)Délivrance des certificats
Délivrance d'une demande de certificat , Afin qu'il puisse être vérifié par l'émetteur . Événements par défaut90Oh, mon Dieu.
#ÉmisB Demande de certificat pour le serveur
keytool -gencert -infile B.csr -outfile A_signed.cer -alias A_root -keystore A_root.jks
#ÉmisA Demande de certificat pour le serveur
keytool -gencert -infile A.csr -outfile B_signed.cer -alias B_root -keystore B_root.jks
#Voir le certificat
openssl x509 -noout -text -in xxx.crt
(5)Rejoindre le keystore
Afficher le keystore:
keytool -v -list -keystore xxx.jks
1)Ajouter une seule clé
Les certificats signés par les deux parties doivent être placés dans leur propre keystore , Bien sûr, en affaires , Ajouter unilatéralement l'autre partie
#A Serveur
keytool -import -keystore A_root.jks -file A_signed.cer -alias A_client_signed
keytool -import -keystore A_root.jks -file B_signed.cer -alias B_client_signed
#B Serveur
keytool -import -keystore B_root.jks -file A_signed.cer -alias A_client_signed
keytool -import -keystore B_root.jks -file B_signed.cer -alias B_client_signed
2)Rejoindre l'ensemble du keystore
# Oui.B Importation du keystore pour A Dans le keystore
keytool -importkeystore -srckeystore A_root.jks -destkeystore B_root.jks
# Oui.A Importation du keystore pour B Dans le keystore
keytool -importkeystore -srckeystore B_root.jks -destkeystore A_root.jks
②ssh Construire la confiance mutuelle en tant que serveur(Utilisation de paires de clés)
En fait, c'est ssh-key Comme mode de connexion , Remplacer la connexion par mot de passe simple . En fait, c'est aussi le traitement des paires de clés
Conseils:Quand vous changez d'utilisateur Parsu -, Basculer simultanément les variables d'environnement
(1)Créer un utilisateur
D'habitude, nous devrions inconsciemment
InterdictionrootConnexion, Créer un utilisateur administratif optimal pour l'utilisateur connecté# ModifierSSHDConfiguration,InterdictionrootConnexion # Trouver“#PermitRootLogin yes”, Fin du paragraphe “yes”Lire comme suit:“no”. vi /etc/ssh/sshd_config
# Créer un utilisateur
# Par exemple:Nom d'utilisateurtest
useradd -m test
# Configurer le mot de passe
passwd test
(2)Allowsudo Configuration
En fait, ce sont des fichiers d'opération.
vi /etc/sudoers
Mode 1: Compatibilité dynamique
# 1、Ouvrir le commentaire
# Allows people in group wheel to run all commands
# En général root Le groupe auquel appartient l'utilisateur est appelé wheel, Donc nous devons Décompresser le commentaire
## centos
%wheel ALL=(ALL) ALL
## ubuntu
%sudo ALL=(ALL:ALL) ALL
# 2、Modifier l'utilisateurtest,Pour qu'il appartienne àrootGroupe(wheel)
## centos
usermod -g root test
## ubuntu
sudo usermod -aG sudo test
Mode 2: C'est fini.
# Ajouter une ligne directement à l'utilisateur
## centos ,RéférencesrootCompilation
# Allow root to run any commands anywhere
root ALL=(ALL) ALL
test ALL=(ALL) ALL
## Ubuntu,RéférencesrootCompilation
# User privilege specification
root ALL=(ALL:ALL) ALL
test ALL=(ALL:ALL) ALL
(3) Modifications facultatives sshdPort
Et pourquoi?? C'est pour éviter la numérisation par défaut du port
En fait, c'est aussi une opération sur ce fichier
vi /etc/ssh/sshd_config
# 1、Chercher Port 22,Supprimer#No.,De0~65536 Sélectionnez le port libre à remplir
# Par exemple:23333
Port 23333
# 2、RedémarrersshdServices
## centos
service sshd restart
## ubuntu
sudo systemctl restart ssh.service
(4)Paramètresssh-key Connexion
1)Générerssh-key
L'exemple suivant correspond au message :
ssh-keyGénérer:
test Et test.pub
# Mode 1:
# En généralssh-key Est l'opération suivante ,Générer une clé publique
# -f Nom du fichier -C Remarques -t Type
ssh-keygen -t rsa -f test -C "test key"
# Mode 2:
# openssl Générer une paire de clés conforme au format
## 1、Générer une clé
openssl genrsa -3 -out rsa_key.private
## 2、Générer une clé publique
openssl rsa -pubout -in rsa_key.private -out rsa_key.public
## 3、 Conversion de la clé publique en ssh Format acceptéPKCS8
ssh-keygen -f rsa_key.public -i -mPKCS8 >id_rsa.pub
## 4、Obtenir la clé privée rsa_key.private Et la clé publique rsa_key.public
## Etssh La paire de clés est :id_rsa.pub
2)Télécharger la clé publique sur le serveur
Voici un exemple de message correspondant :
Utilisateurs:test
ipRestrictions:192.168.0.127
## Mode 1: Utiliserssh-key
# 1、Télécharger la clé publique
ssh-copy-id -i ./test.pub [email protected]
# équivalent au transfert de la clé publique à testUtilisateurs Dans le fichier clé d'autorisation
# 2、 Définir les permissions de la clé publique (Facultatif, Mais il est suggéré que )
# 1) Frais d'assurance rootL'utilisateur ne peut pas fonctionner
chmod 400 /home/test/.ssh/authorized_keys
# 2) S'assurer que les permissions ne sont pas modifiées
# chattr + équivalent à un traitement récursif pour ouvrir les propriétés du fichier ,i Pour ne pas changer de fichier ou de répertoire .
chattr +i /home/test/.ssh/authorized_keys
## Mode 2: opensslGénérer
# -f Représenter l'installation par défaut
ssh-copy-id -f -i ./id_rsa.pub [email protected]
(5)TestssshConnexion
La permission de se connecter à la clé publique si 600
#Fréquentssh-key Générer , Appelez la clé publique
ssh -i test.pub [email protected]
# opensll Générer, Appelez la clé publique
ssh-copy-id -f -i ./id_rsa.pub [email protected]
#SiipChangé., Il est encore vieux dans le cache ,Peut être vidéssh-agentCache
# Comment1: Supprimer la clé spécifiée
ssh-add -d ~/.ssh/test/test
# Comment2: Vider le cache
## Voir les enregistrements mis en cache
ssh-keygen -l -f ~/.ssh/known_hosts
## Effacer la désignationip
## Par exemple, 192.168.0.127
ssh-keygen -R 192.168.0.127
边栏推荐
猜你喜欢

Machine learning - dimensionality reduction (data compression, data visualization)

2020-12-06

Wechat applet project example - Fitness calculator

2020-12-06

推荐6款办公软件,好用还免费,效率翻倍

2022 communication industry ultimate Exhibition Guide

微积分复习2

The idea of setting the flash memory management and resource size, and the quantitative relationship among parallelism, slot, and taskmanager quantity

微信小程序项目实例——我有一支画笔(画画)

cupp字典生成工具(同类工具还有crunch)
随机推荐
2020-12-17
2020-12-06
Recommend 6 office software, easy to use and free, double the efficiency
Using SSH public key to transfer files
微信小程序项目实例——我有一支画笔(画画)
Use of pnpm package management tool
3769 moving stones (simulated)
Unique paths for leetcode topic resolution
The road of global evolution of vivo global mall -- multilingual solution
Wechat applet project example - Fitness calculator
[point cloud compression] variable image compression with a scale hyperprior
What are the solutions across domains?
How to prevent electrical fire in shopping malls?
oracle之用户和表空间
2022 communication industry ultimate Exhibition Guide
cupp字典生成工具(同类工具还有crunch)
Demand and business model innovation - demand 11 - overview of demand analysis
余压监控系统在高层民用建筑的应用
Simple database connection example
Selection (045) - what is the output of the following code?