Maison > Opération et maintenance > Nginx > le corps du texte

Comment configurer la communication sécurisée HTTPS entre le serveur Nginx et iOS

王林
Libérer: 2023-05-28 23:12:45
avant
949 Les gens l'ont consulté

Introduction

Dans les communications réseau, un logiciel de capture de paquets peut être utilisé pour analyser les requêtes réseau et effectuer des attaques par rejeu. Les solutions pour rejouer les attaques sont généralement Il utilise un. paramètre changeant, tel que l'horodatage chiffré par RSA, mais compte tenu du délai de transmission du réseau, l'horodatage doit avoir une certaine tolérance aux erreurs, ce qui ne peut toujours pas fondamentalement empêcher les attaques par relecture. Si vous souhaitez mieux résoudre le problème des attaques par rejeu, vous devriez envisager d'utiliser la communication https. Le protocole https est un protocole réseau construit à partir du protocole SSL+http qui peut effectuer une transmission cryptée et une authentification d'identité. Il est plus sécurisé que le protocole http. .

realization

Pour les sites Web accessibles avec un navigateur, vous devez demander un certificat auprès du ca pour garantir que les pages Web https peuvent être consultées normalement, sinon il sera averti des sites Web non sécurisés ou non certifiés et, pour certaines transmissions de données en arrière-plan, utilisera un certificat auto-signé.

Configuration du serveur

Générer le certificat

Effectuez les opérations suivantes sur la ligne de commande du serveur # 🎜🎜#

①Pour générer la clé privée du serveur, vous devez saisir un mot de passe de 4 à 8191 chiffres

openssl genrsa -des3 -out server.key 2048
Copier après la connexion

②Supprimez le mot de passe du fichier de clé, ici vous vous devez entrer ① pour remplir le mot de passe

openssl rsa -in server.key -out server.key
Copier après la connexion

③Générer le fichier csr, cette étape nécessite la saisie d'une variété d'informations, vous pouvez appuyer sur Entrée pour les ignorer tous

openssl req -new -key server.key -out server.csr
Copier après la connexion

④Générer le fichier crt , dans cette étape - jours est la période de validité, vous pouvez l'écrire plus longtemps

openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt
Copier après la connexion

⑤ Combinez crt et key pour créer pem, qui sera utilisé pour générer cer plus tard pour la vérification du client

cat server.crt server.key > server.pem
Copier après la connexion

⑥ Utilisez pem pour générer cer , le fichier cer est stocké sur le client pour vérification

openssl x509 -in server.pem -outform der -out server.cer
Copier après la connexion

2 Modifier le fichier de configuration nginx#. 🎜🎜#
Si vous ne connaissez pas le fichier de configuration Pour imprimer le chemin, utilisez la commande suivante.

nginx -t
Copier après la connexion

Cette commande peut être utilisée pour tester si le fichier de configuration est correct et imprimera également le chemin.

Selon le contenu imprimé, ouvrez nginx.conf et vous constaterez qu'il existe une balise de configuration http { ... } Ajoutez une balise de configuration du serveur à la balise http.

server {
listen    443;
server_name localhost;

# 配置网站的根目录和首页的文件名和类型

index index.html index.htm index.php;
root <这里填写网站的根目录>
ssl         on;
ssl_certificate   <这里填写crt文件server.crt的全路径>
ssl_certificate_key <这里填写私钥key文件server.key的全路径>

# 下面是对php的配置,如果不配置,将无法正常解析php文件,这段配置是从nginx对http的80端口配置中复制过来的,如果这段配置不能正常工作,请从自己的服务器对80端口的配置文件中复制过来。

location ~ .*\.(php|php5)?$
{
  #fastcgi_pass unix:/tmp/php-cgi.sock;
  fastcgi_pass 127.0.0.1:9000;
  fastcgi_index index.php;
  include fastcgi.conf;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
  expires 30d;
}
location ~ .*\.(js|css)?$
{
  expires 1h;
}

# 这里如果不知道如何填写,请参考80端口的配置文件

include <nginx的conf目录路径>/rewrite/default.conf;
access_log <nginx服务器日志的路径>/default.log;
}
Copier après la connexion

3. Mettre à jour la configuration

nginx -t #测试配置文件是否正确
nginx -s reload #重新加载配置文件
Copier après la connexion
À ce stade, la configuration côté serveur est terminée.

Configuration client

S'il s'agit d'un certificat émis par ca, utilisez simplement la requête https directement, mais nous sommes un certificat auto-signé, si c'est directement Une erreur sera signalée lors de l'accès. Voici comment utiliser afn pour configurer les requêtes https pour les certificats auto-signés.

1. Importez le certificat cer mentionné ci-dessus dans le bundle de l'application


#🎜 🎜#

Importer server.cer dans le bundleComment configurer la communication sécurisée HTTPS entre le serveur Nginx et iOS

2 Avant d'utiliser afn pour faire une requête, effectuez la configuration suivante

afsecuritypolicy *policy = [afsecuritypolicy policywithpinningmode:afsslpinningmodepublickey];
policy.allowinvalidcertificates = yes;
afhttpsessionmanager *manager = [afhttpsessionmanager manager];
manager.securitypolicy = policy;
// 下面使用manager进行https请求即可。
Copier après la connexion
.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:yisu.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!