1. Pour utiliser OpenSSL afin de générer un certificat CA pour l'IP intranet, vous devez suivre les étapes ci-dessous :
1. Créez un dossier pour stocker le certificat
mkdir /opt/zhengshu
Remarque : Vous pouvez le créer selon votre propre répertoire, le mien est directement placé dans le répertoire /opt.
2. Générer une clé privée et une demande de certificat
openssl req -newkey rsa:2048 -nodes -keyout ca.key -out ca.csr
Remarque : Lors de votre candidature, il vous sera demandé de renseigner certains paramètres. Voici des descriptions de paramètres et des exemples :
字段 字段含义 示例
/C= Country 国家 CN
/ST= State or Province 省 beijing
/L= Location or City 城市 beijing
/O= Organization 组织或企业 stars-mine
/OU= Organization Unit 部门 stars-mine
/CN= Common Name 是证书拥有者名称 172.xx.xx.xx
#下面这两个参数,大家直接回车跳过就行
A challenge password []:
An optional company name []:
3. Certificat auto-signé
openssl x509 -req -days 365 -in ca.csr -signkey ca.key -out ca.crt
4. Générer un certificat de serveur
openssl genrsa -out server.key 2048
openssl req -new -key server.key -out server.csr
Remarque : Cette étape saisira également des paramètres, qui doivent être cohérents avec la dernière saisie
openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 365
5. Générer un certificat client
openssl genrsa -out client.key 2048
openssl req -new -key client.key -out client.csr
Remarque : Cette étape saisira également des paramètres, qui doivent être cohérents avec les deux entrées précédentes.
openssl x509 -req -in client.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out client.crt -days 365
6. À ce stade, tous les certificats sont générés
2. Configuration du certificat
1. Exemple de configuration (Apache) :
<VirtualHost *:443>
ServerName example.com
SSLEngine on
SSLCertificateFile /path/to/server.crt
SSLCertificateKeyFile /path/to/server.key
SSLCACertificateFile /path/to/ca.crt
...
</VirtualHost>
2. Exemple de configuration (Nginx) :
server {
listen 80;
listen 443 ssl;
server_name 172.21.10.101;
ssl_certificate /opt/server.crt;
ssl_certificate_key /opt/server.key;
if ($scheme = http) {
return 301 https://$host$uri?$args;
}
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
#root html;
#index index.html index.htm;
proxy_pass http://172.xx.xx.xx:9000/xxx/xxx/;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
3. Exemple de configuration (Tomcat) :
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
keystoreFile="/path/to/server.keystore" keystorePass="password"
truststoreFile="/path/to/ca.crt" truststorePass="password"
clientAuth="true" sslProtocol="TLS"/>
Remarque : Ces commandes pour la première étape généreront un certificat CA ca.crt
nommé , un server.crt
certificat de serveur nommé et un certificat client client.crt
nommé . Vous pouvez distribuer ces certificats à vos applications et clients pour activer le chiffrement SSL/TLS.
3. Traitement des problèmes courants
1. Une fois l'adresse IP de l'intranet configurée avec un certificat SSL, https n'est pas accessible
Solution : vérifiez si le pare-feu du serveur est fermé, assurez-vous de fermer le pare-feu
service iptables status
systemctl status firewalld
Description de l'état :
出现Active: active (running)切高亮显示则表示是启动状态。
出现 Active: inactive (dead)灰色表示停止,看单词也行。