Pengenalan
Dalam komunikasi rangkaian, perisian penangkapan paket boleh digunakan untuk menganalisis permintaan rangkaian dan menjalankan serangan ulangan secara umumnya dengan menggunakan Parameter perubahan, seperti cap masa yang disulitkan rsa, tetapi memandangkan kelewatan penghantaran rangkaian, cap masa perlu mempunyai toleransi ralat tertentu, yang masih tidak dapat menghalang serangan ulangan secara asasnya. Jika anda ingin menyelesaikan masalah serangan ulang dengan lebih baik, anda harus mempertimbangkan untuk menggunakan komunikasi https Protokol https ialah protokol rangkaian yang dibina daripada protokol ssl+http yang boleh melakukan penghantaran yang disulitkan dan pengesahan identiti. Ia lebih selamat daripada protokol http .
Pelaksanaan
Untuk tapak web yang diakses dengan penyemak imbas, anda perlu memohon sijil daripada ca untuk memastikan laman web https boleh dilayari seperti biasa, jika tidak, anda akan diberi amaran bahawa ia tidak selamat atau Untuk tapak web yang tidak diperakui, untuk penghantaran beberapa data latar belakang, sijil yang ditandatangani sendiri boleh digunakan.
Konfigurasi pelayan
Jana sijil
Lakukan operasi berikut pada baris arahan pelayan
①Untuk menjana kunci peribadi pelayan, anda perlu memasukkan kata laluan 4~8191 digit
openssl genrsa -des3 -out server.key 2048
②Untuk mengalih keluar kata laluan fail kunci, anda perlu memasukkan kata laluan yang diisi ①
openssl rsa -in server.key -out server.key
③Janakan fail csr, Langkah ini memerlukan memasukkan pelbagai maklumat Anda boleh menekan Enter untuk melangkau kesemuanya
openssl req -new -key server.key -out server.csr
④ Hasilkan fail crt -hari dalam langkah ini diikuti dengan tempoh sah. Anda boleh menulisnya lebih lama
openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt
⑤ Gabung Crt dan kunci digunakan untuk membuat pem, yang digunakan untuk menjana cer kemudian untuk pengesahan pelanggan
cat server.crt server.key > server.pem
⑥ Gunakan pem untuk menjana cer, dan cer fail disimpan pada klien untuk pengesahan
openssl x509 -in server.pem -outform der -out server.cer
2 Ubah suai fail konfigurasi nginx
Jika anda tidak tahu laluan fail konfigurasi, gunakan arahan berikut untuk mencetaknya.
nginx -t
Arahan ini boleh digunakan untuk menguji sama ada fail konfigurasi adalah betul dan juga akan mencetak laluan.
Mengikut kandungan yang dicetak, buka nginx.conf dan anda boleh mendapati terdapat teg konfigurasi http { ... } Tambah teg konfigurasi pelayan pada teg 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; }
3. Kemas kini konfigurasi
nginx -t #测试配置文件是否正确 nginx -s reload #重新加载配置文件
Pada ketika ini, konfigurasi bahagian pelayan telah tamat.
Konfigurasi pelanggan
Jika ia adalah sijil yang dikeluarkan oleh ca, anda boleh terus menggunakan permintaan https, tetapi kami adalah sijil yang ditandatangani sendiri, jika anda mengaksesnya secara langsung, ralat akan dilaporkan, seperti yang diterangkan di bawah Berikut ialah cara menggunakan afn untuk mengkonfigurasi permintaan https untuk sijil yang ditandatangani sendiri.
1. Import sijil cer yang dinyatakan di atas ke dalam himpunan apl
Tukar server.cer Import bundle
2. Sebelum menggunakan afn untuk membuat permintaan, buat konfigurasi berikut
afsecuritypolicy *policy = [afsecuritypolicy policywithpinningmode:afsslpinningmodepublickey]; policy.allowinvalidcertificates = yes; afhttpsessionmanager *manager = [afhttpsessionmanager manager]; manager.securitypolicy = policy; // 下面使用manager进行https请求即可。
Atas ialah kandungan terperinci Bagaimana untuk mengkonfigurasi komunikasi selamat HTTPS antara pelayan Nginx dan iOS. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!