国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Jadual Kandungan
Mengapa ia gagal
Gunakan Pihak Berkuasa Sijil Asli
Muat turun dan simpan fail cacert.pem
Rumah pembangunan bahagian belakang tutorial php Bagaimana untuk membetulkan isu Pihak Berkuasa Sijil HTTP Curl PHP pada Windows

Bagaimana untuk membetulkan isu Pihak Berkuasa Sijil HTTP Curl PHP pada Windows

Nov 11, 2024 pm 12:24 PM
php

Permintaan HTTPS yang berjaya melibatkan klien HTTP yang mengesahkan sijil TLS yang disediakan pelayan terhadap senarai akar yang diketahui dan dipercayai sijil. Sambungan PHP Curl tidak berbeza; yang Curl sambungan menggunakan libcurl untuk membuat permintaan HTTPS dan libcurl, yang seterusnya menggunakan perpustakaan TLS seperti OpenSSL untuk mengesahkan permintaan.

Bagaimana untuk membetulkan isu Pihak Berkuasa Sijil HTTP Curl PHP pada Windows

Sambungan Curl memerlukan fail yang sah yang mengandungi semua sijil akar yang dipercayai untuk melengkapkan pengesahan HTTPS dan PHP mendedahkan ini sebagai arahan dalam fail php.ini.

Pada Linux, BSD dan macOS, libcurl boleh lalai kepada akar sistem sijil, tetapi ini tidak boleh dilakukan pada Windows kerana Windows melakukannya tidak datang dengan satu fail yang mengandungi semua akar sistem sijil.

Artikel ini membincangkan dua kemungkinan pendekatan untuk berjaya membuat permintaan HTTPS dengan sambungan Curl dan perkara yang tidak boleh dilakukan yang boleh menyebabkan permintaan HTTPS tidak selamat.

Mengapa ia gagal

$ch?=?curl_init('https://php.watch');??
curl_setopt($ch,?CURLOPT_RETURNTRANSFER,?true);??
curl_exec($ch);?//?false??

curl_error($ch);
//?SSL?certificate?problem:?unable?to?get?local?issuer?certificate

Jika panggilan curl_exec gagal dengan respons palsu dan jika curl_error menunjukkan masalah sijil SSL: tidak dapat mendapatkan setempat ralat sijil pengeluar, ini bermakna Curl tidak diberikan fail yang mengandungi sijil akar atau ia tidak dapat menemuinya.

Ralat ini jarang berlaku pada sistem Linux, BSD dan macOS, tetapi agak biasa pada Windows kerana tiada fail yang ditetapkan untuk mendapatkan root sijil, dan PHP tidak menghantar senarai sijil akar padanya miliknya.

Penyelesaiannya ialah dengan menyediakan fail yang mengandungi akar terkini sijil, atau idealnya, biarkan Curl menghuraikan stor akar asli yang sistem pengendalian asas menyediakan.

Gunakan Pihak Berkuasa Sijil Asli

Pada Curl 7.71 dan lebih baru, adalah mungkin untuk menetapkan Curl pilihan untuk meminta Curl menggunakan sijil akar asli (sistem). Ini berfungsi walaupun pada Windows, di mana Curl menghuraikan sijil akar sistem dan menggunakannya.

Apabila pilihan CURLOPT_SSL_OPTIONS ditetapkan kepada CURLSSLOPT_NATIVE_CA atau bitmask yang mengandungi bit tersebut, Curl cuba menggunakan native stor sijil akar, tertakluk kepada keupayaan dan versi pustaka TLS yang mendasari.

Ini ialah pembetulan yang disyorkan, jika sambungan Curl dibina dengan Curl 7.71 atau lebih baharu dan PHP 8.2 dan lebih baharu.

?$ch?=?curl_init('https://php.watch');
??curl_setopt($ch,?CURLOPT_RETURNTRANSFER,?true);
???curl_setopt($ch,?CURLOPT_SSL_OPTIONS,?CURLSSLOPT_NATIVE_CA);
????curl_exec($ch);

Perhatikan coretan di atas tidak menandakan Versi Curl dan PHP versi, dan menganggap kedua-dua keperluan versi PHP dan Curl dipenuhi. The berikut ialah contoh yang menunjukkan penambahan pilihan Curl secara bersyarat:

$ch?=?curl_init('https://php.watch');??
curl_setopt($ch,?CURLOPT_RETURNTRANSFER,?true);??
if?(defined('CURLSSLOPT_NATIVE_CA')??
??&&?version_compare(curl_version()['version'],?'7.71',?'>='))?{??
????curl_setopt($ch,?CURLOPT_SSL_OPTIONS,?CURLSSLOPT_NATIVE_CA);
}??
curl_exec($ch);

Muat turun dan simpan fail cacert.pem

Untuk aplikasi yang dijalankan pada versi PHP lebih lama daripada 8.2 (di mana CURLSSLOPT_NATIVE_CA pemalar tidak tersedia), atau apabila versi Curl lebih lama daripada 7.71, penyelesaian alternatif yang disyorkan ialah memuat turun Curl-compatible fail sijil akar dan konfigurasikan PHP atau permintaan Curl untuk menggunakannya.

Projek Curl mengekalkan senarai sijil terkini. Lihat Sijil CA yang diekstrak daripada Mozilla.

  1. Muat turun fail cacert.pem

  2. Alihkan fail ke direktori yang boleh diakses oleh PHP dan pelayan web. Contohnya, ke C:/php/cacert.pem.
  3. Edit fail php.ini dan ubah suai entri curl.cainfo untuk menghala ke laluan mutlak ke fail cacert.pem.

  4. $ch?=?curl_init('https://php.watch');??
    curl_setopt($ch,?CURLOPT_RETURNTRANSFER,?true);??
    curl_exec($ch);?//?false??
    
    curl_error($ch);
    //?SSL?certificate?problem:?unable?to?get?local?issuer?certificate
  5. Secara pilihan, mulakan semula pelayan Web (seperti Apache) untuk memuatkan semula fail INI.

Kelemahan pendekatan ini ialah fail cacert.pem mesti dikemas kini secara rutin. The cacert.pem fail yang disediakan oleh projek Curl, sebagai contoh, diekstrak daripada akar kedai yang diselenggara oleh Mozilla. Secara purata, senarai ini dan fail mendapat dikemaskini 4-5 kali setahun. Untuk memastikan keserasian dengan akar terkini senarai sijil, pastikan anda mengemas kini salinan tempatan fail ini kerap

Jika tidak mungkin untuk mengubah suai fail INI, nyatakan laluan mutlak ke fail cacert.pem dalam permintaan Curl juga:

?$ch?=?curl_init('https://php.watch');
??curl_setopt($ch,?CURLOPT_RETURNTRANSFER,?true);
???curl_setopt($ch,?CURLOPT_SSL_OPTIONS,?CURLSSLOPT_NATIVE_CA);
????curl_exec($ch);

Pada PHP 8.2 ?dengan Curl 7.77 , adalah mungkin untuk rentetan yang mengandungi kandungan cacert.pem dengan pilihan CURLOPT_CAINFO_BLOB.

Atas ialah kandungan terperinci Bagaimana untuk membetulkan isu Pihak Berkuasa Sijil HTTP Curl PHP pada Windows. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana penjana berfungsi dalam php? Bagaimana penjana berfungsi dalam php? Jul 11, 2025 am 03:12 AM

Ageneratorinphpisamemory-efficientwaytoiterateOverlargedatasetsbyieldingvaluesonateatimeNsteadofreturningthemallatonce.1.GeneratorSuseTheyEldeyWorderWorderToProducevaluuesondemand,

Cara mengakses watak dalam rentetan dengan indeks dalam php Cara mengakses watak dalam rentetan dengan indeks dalam php Jul 12, 2025 am 03:15 AM

Dalam PHP, anda boleh menggunakan kurungan persegi atau pendakap keriting untuk mendapatkan aksara indeks spesifik rentetan, tetapi kurungan persegi disyorkan; Indeks bermula dari 0, dan akses di luar julat mengembalikan nilai null dan tidak dapat diberikan nilai; MB_SUBSTR dikehendaki mengendalikan watak multi-bait. Sebagai contoh: $ str = "hello"; echo $ str [0]; output h; dan watak -watak Cina seperti MB_SUBSTR ($ str, 1,1) perlu mendapatkan hasil yang betul; Dalam aplikasi sebenar, panjang rentetan perlu diperiksa sebelum gelung, rentetan dinamik perlu disahkan untuk kesahihan, dan projek berbilang bahasa mengesyorkan menggunakan fungsi keselamatan multi-bait secara seragam.

Bagaimana untuk mengelakkan sesi merampas PHP? Bagaimana untuk mengelakkan sesi merampas PHP? Jul 11, 2025 am 03:15 AM

Untuk mengelakkan rampasan sesi dalam PHP, langkah -langkah berikut perlu diambil: 1. Gunakan HTTPS untuk menyulitkan penghantaran dan set session.cookie_secure = 1 dalam php.ini; 2. Tetapkan atribut kuki keselamatan, termasuk httponly, selamat dan samesite; 3. Panggil session_regenerate_id (benar) apabila pengguna log masuk atau keizinan berubah menjadi berubah menjadi SesiSeId; 4. Hadkan kitaran hayat sesi, konfigurasi GC_MAXLIFETIME dan rekod masa aktiviti pengguna; 5. melarang mendedahkan sessionId ke url, dan tetapkan session.use_only

Cara URL Mengekodkan rentetan dalam PHP dengan urlencode Cara URL Mengekodkan rentetan dalam PHP dengan urlencode Jul 11, 2025 am 03:22 AM

Fungsi urlencode () digunakan untuk menyandikan rentetan ke dalam format selamat URL, di mana aksara bukan alphanumerik (kecuali-, _, dan.) Digantikan dengan tanda peratus diikuti oleh nombor heksadesimal dua angka. Sebagai contoh, ruang ditukar kepada tanda-tanda, tanda seru ditukar kepada!, Dan watak-watak Cina ditukar kepada borang pengekodan UTF-8 mereka. Apabila menggunakan, hanya nilai parameter yang perlu dikodkan, bukan keseluruhan URL, untuk mengelakkan merosakkan struktur URL. Untuk bahagian lain URL, seperti segmen laluan, fungsi Rawurlencode () harus digunakan, yang menukarkan ruang ke. Apabila memproses parameter array, anda boleh menggunakan http_build_query () untuk mengodkan secara automatik, atau memanggil urlencode secara manual () pada setiap nilai untuk memastikan pemindahan data yang selamat. Hanya

Php mendapatkan watak n pertama rentetan Php mendapatkan watak n pertama rentetan Jul 11, 2025 am 03:17 AM

Anda boleh menggunakan substr () atau mb_substr () untuk mendapatkan aksara n pertama dalam php. Langkah -langkah khusus adalah seperti berikut: 1. Gunakan substr ($ string, 0, n) untuk memintas aksara N yang pertama, yang sesuai untuk aksara ASCII dan mudah dan cekap; 2. Apabila memproses aksara multi-bait (seperti Cina), MB_SUBSTR ($ String, 0, N, 'UTF-8'), dan memastikan bahawa lanjutan MBSTRING diaktifkan; 3. Jika rentetan mengandungi aksara HTML atau Whitespace, anda harus terlebih dahulu menggunakan strip_tags () untuk mengeluarkan tag dan trim () untuk membersihkan ruang, dan kemudian memintasnya untuk memastikan hasilnya bersih.

Php mendapatkan watak n terakhir rentetan Php mendapatkan watak n terakhir rentetan Jul 11, 2025 am 03:17 AM

Terdapat dua cara utama untuk mendapatkan aksara N terakhir rentetan dalam PHP: 1. Gunakan fungsi substr () untuk memintas melalui kedudukan permulaan negatif, yang sesuai untuk aksara tunggal-bait; 2. Gunakan fungsi MB_SUBSTR () untuk menyokong pengekodan berbilang bahasa dan UTF-8 untuk mengelakkan pemotongan aksara bukan bahasa Inggeris; 3. Secara pilihan menentukan sama ada panjang rentetan cukup untuk mengendalikan situasi sempadan; 4. Ia tidak disyorkan untuk menggunakan kaedah kombinasi STRREV () Substr () kerana ia tidak selamat dan tidak cekap untuk aksara multi-bait.

Bagaimana untuk menetapkan dan mendapatkan pembolehubah sesi dalam PHP? Bagaimana untuk menetapkan dan mendapatkan pembolehubah sesi dalam PHP? Jul 12, 2025 am 03:10 AM

Untuk menetapkan dan mendapatkan pembolehubah sesi dalam PHP, anda mesti terlebih dahulu memanggil session_start () di bahagian atas skrip untuk memulakan sesi. 1. Apabila menetapkan pembolehubah sesi, gunakan $ _Session hyperglobal array untuk memberikan nilai kepada kekunci tertentu, seperti $ _Session ['username'] = 'john_doe'; Ia boleh menyimpan rentetan, nombor, tatasusunan dan juga objek, tetapi elakkan menyimpan terlalu banyak data untuk mengelakkan mempengaruhi prestasi. 2. Apabila mendapatkan pembolehubah sesi, anda perlu menghubungi session_start () terlebih dahulu, dan kemudian mengakses array $ _Session melalui kunci, seperti echo $ _Session ['username']; disyorkan untuk menggunakan isset () untuk memeriksa sama ada pembolehubah wujud untuk mengelakkan kesilapan

Cara Mencegah Suntikan SQL di PHP Cara Mencegah Suntikan SQL di PHP Jul 12, 2025 am 03:02 AM

Kaedah utama untuk mencegah suntikan SQL dalam PHP termasuk: 1. Gunakan pernyataan pra -proses (seperti PDO atau MySQLI) untuk memisahkan kod dan data SQL; 2. Matikan mod preprocessing simulasi untuk memastikan pra -proses yang benar; 3. Penapis dan sahkan input pengguna, seperti menggunakan is_numeric () dan filter_var (); 4. Elakkan secara langsung splicing rentetan SQL dan gunakan parameter mengikat sebaliknya; 5. Matikan paparan ralat dalam persekitaran pengeluaran dan log ralat rekod. Langkah -langkah ini secara komprehensif menghalang risiko suntikan SQL dari mekanisme dan butiran.

See all articles