• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar

Jaranguda

Belajar Mengajar

  • Home
  • Sponsor/Jasa
  • Tentang

Solusi Fix PHP Failed to enable crypto in

Last Updated on 24 November 2021 By tommy Leave a Comment

Beberapa hari ini salah satu script PHP yang saya gunakan error, setelah pindah server. Scriptnya seperti dibawah ini

<?php
$url = file_get_contents("https://xxx-prod.domain.com");
var_dump($url);

output dari script diatas

PHP Warning:  file_get_contents(): Peer certificate CN=`xxx-prod-v1.domain.com' did not match expected CN=`xxx-prod.domain.com' in /home/tommy/getIp.php on line 3
PHP Warning:  file_get_contents(): Failed to enable crypto in /home/tommy/getIp.php on line 3
PHP Warning:  file_get_contents(https://xxx-prod.domain.com): Failed to open stream: operation failed in /home/tommy/getIp.php on line 3
bool(false)

Error tersebut menyatakan bahwa SSL Common Name (CN) tidak sesuai dengan nama domain yang sedang saya akses, biasanya hal ini terjadi bisa di server salah setting untuk SSL yang digunakan. Saya coba buka dari beberapa browser, tidak ada masalah dan semuanya menampilkan SSL yang cocok.

Cek dengan curl dari server, hasilnya sama, jadi ini bukan masalah di PHP

curl: (60) SSL: no alternative certificate subject name matches target host name 'xxx-prod.domain.com'
More details here: https://curl.haxx.se/docs/sslcerts.html
 
curl failed to verify the legitimacy of the server and therefore could not
establish a secure connection to it. To learn more about this situation and
how to fix it, please visit the web page mentioned above.

Coba telusuri lebih lanjut dengan ping

$ ping xxx-prod.domain.com
PING xxx-prod.domain.com(XXXX:XXXX:c0c:20ff::1 (XXXX:XXXX:c0c:20ff::1)) 56 data bytes
64 bytes from XXXX:XXXX:c0c:20ff::1 (XXXX:XXXX:c0c:20ff::1): icmp_seq=1 ttl=64 time=0.092 ms
64 bytes from XXXX:XXXX:c0c:20ff::1 (XXXX:XXXX:c0c:20ff::1): icmp_seq=2 ttl=64 time=0.073 ms
64 bytes from XXXX:XXXX:c0c:20ff::1 (XXXX:XXXX:c0c:20ff::1): icmp_seq=3 ttl=64 time=0.099 ms

dengan curl juga bisa dicek, dengan curl namadomain -k -v, hasilnya harusnya sama. Dengan hasil ping tersebut bisa di pastikan bahwa server tersebut salah mengkonfigurasi SSL untuk IPv6-nya, jadi yang valid hanya untuk IPv4, karena dari komputer saya yang tidak ada IPv6 tidak ada masalah.

Karena sudah menemukan masalahnya, jadi kita buatkan solusinya, masalah ini bisa di atasi dari dua sisi, baik dari client ataupun server.

1. Dari Client

Bila domain tersebut punya orang lain, dan kita tidak punya akses ke servernya, maka dari script PHP yang sudah dibuat sebelumnya, kita tambahkan parameter untuk memaksa PHP menggunakan IPv4, karena tidak ada masalah disitu, jadi scriptnya berubah menjadi

<?php
$url = file_get_contents("https://xxx-prod.domain.com", false, stream_context_create(['socket' => ['bindto' => '0:0']]));
var_dump($url);

0:0 pada nilai diatas adalah IPv4, untuk IPv6 gunakan [::]:0

2. Dari Server

Bila server/domain tersebut anda yang mengelolanya, bisa di fix dengan menggunakan certificate yang benar untuk domain tersebut, contoh untuk Nginx ubah pada bagian

ssl_certificate /root/.acme.sh/xxx-prod.domain.com/fullchain.cer;
ssl_certificate_key /root/.acme.sh/xxx-prod.domain.com/xxx-prod.domain.com.key;

jangan lupa restart service nginx setelah melakukan perubahan.

Tulisan menarik lainnya

  • Solusi Error PHP Cannot modify header information - headers

    Contoh script script diambil dari php imagestring, solusinya hapus spase kosong di baris pertama, hingga…

  • Install PHP 7.1 Nginx MariaDB WordPress di CentOS 7

    Sekarang ini WordPress merupakan pilihan utama untuk blog, situs perusahaan, situs belanja, dan banyak lainnya.…

  • Solusi Error PHP nginx Permission denied while connecting to upstream

    Saat menggunakan nginx dan php-fpm error yang sering muncul adalah 2016/12/05 12:01:05 [crit] 20397#20397: *3…

  • Solusi MariaDB Failed at step NAMESPACE spawning

    Log dari journal -f -- Logs begin at Fri 2017-04-28 09:50:50 WIB. -- Apr 28…

Filed Under: PHP

Reader Interactions

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Primary Sidebar

Pencarian

Tanya Jawab tentang DevOps SRE CPE, gabung di https://t.me/devopsindonesia

Terbaru

  • Cara Menonaktifkan Pager di macOS
  • Cara Mengupdate Nama Apple silicon-as-a-Service Scaleway
  • Cara Force Delete Namespace di Kubernetes
  • Install PHP MariaDB di Mac Monterey
  • MacOS Minta Install Git

Komentar

  • Ari on Cara Mematikan SSID Molecool Balifiber
  • kiki anarki on Mengambil Data dari Situs BPJS Ketenagakerjaan dengan PHP cURL
  • musgan on Password Router Huawei HG8245H5 Indihome
  • ghabily on Mengambil Informasi Router Alcatel Lucent G-241W-A dengan PHP
  • nea on Mencari urutan angka yang hilang di PHP

Tulisan Populer

  • Password Router Huawei HG8245H5 Indihome 1.1m views
  • Password Terbaru ZTE F609 Indihome 784k views
  • Password Superadmin Huawei HG8245A 314.2k views
  • Cara Setting Manual Modem GPON ZTE F609 Indihome 272.2k views
  • Cara Setting Wireless ZTE F609 Indihome 256.1k views
  • Mengaktifkan Port LAN di Huawei HG8245 Indihome 169.1k views
  • Akses UseeTV Indihome via Wireless ZTE F609 156.5k views
  • Kemana Menghilangnya Saldo BCA 50 ribu 150.3k views
  • Cara Reset Password ZTE F609 Indihome 147.2k views
  • Cara Setting DHCP Server Modem/Router ZTE F609 112.9k views

Kategori

  • Delphi
  • dll
  • Gambas
  • Internet
  • Java
  • Lazarus
  • Linux
  • PHP
  • Review
  • Teknologi

Sponsor

kadal.id
carakami.com
kuotabisa.com
Untuk jadi sponsor, hubungi kita lewat halaman sponsor
© 2021. Jaranguda
  • Linux
  • PHP
  • Internet
  • Teknologi
  • Delphi
  • Gambas
  • Java