{"id":1059,"date":"2017-03-25T11:45:08","date_gmt":"2017-03-25T11:45:08","guid":{"rendered":"https:\/\/zaf.web.id\/blog\/?p=1059"},"modified":"2026-11-14T22:03:36","modified_gmt":"2026-11-14T14:03:36","slug":"menambahkan-sertifikat-ssl-untuk-curl-di-php","status":"publish","type":"post","link":"https:\/\/zaf.web.id\/blog\/menambahkan-sertifikat-ssl-untuk-curl-di-php\/","title":{"rendered":"Menambahkan sertifikat SSL untuk cURL di PHP"},"content":{"rendered":"<figure id=\"attachment_1060\" aria-describedby=\"caption-attachment-1060\" style=\"width: 116px\" class=\"wp-caption alignright\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\" wp-image-1060\" src=\"https:\/\/i0.wp.com\/zaf.web.id\/blog\/wp-content\/uploads\/2017\/03\/ssl-certificate.png?resize=116%2C96&#038;ssl=1\" alt=\"SSL Certificate Logo\" width=\"116\" height=\"96\" \/><figcaption id=\"caption-attachment-1060\" class=\"wp-caption-text\">SSL Certificate Logo<\/figcaption><\/figure>\n<p>Sejak PHP versi 5.6 autentikasi <em>SSL<\/em> terhadap akses <em>cURL<\/em> (<code>CURLOPT_SSL_VERIFYPEER<\/code>) <em>default<\/em> menjadi <code>TRUE<\/code>. Hal ini mengakibatkan ketika menggunakan fungsi <code>file_get_contents()<\/code> selalu melakukan validasi sertifikat SSL terhadap <em>URL<\/em> tujuan yang menggunakan protokol <em>SSL.<\/em> Meskipun <em>URL<\/em> tujuan telah terinstall sertifikat <em>SSL<\/em> yang <em>valid,<\/em> namun <em>cURL<\/em> tidak dapat membuktikan validitas <em>SSL<\/em> jika belum memiliki dokumen pembanding sendiri (<em>CA certs list<\/em>).<\/p>\n<p>Hari ini kebetulan saya juga mengalami masalah yang sama, ketika memasang <a href=\"http:\/\/www.webuzo.com\/wiki\/Install\" target=\"_blank\"><em>webuzo<\/em><\/a> di <em>server<\/em> yang baru. Tidak lama setelah konfigurasi telah selesai dilakukan saya baru sadar kalau beberapa fungsionalitas <em>website<\/em> tidak bekerja seperti biasanya. Setelah memeriksa berkas <code>log<\/code> saya mendapati pesan <em>warning<\/em> sebagai berikut:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Log\"><code>PHP Warning:  file_get_contents(): SSL operation failed with code 1. OpenSSL Error messages:\nerror:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed in \/home\/user\/public_html\/script.php on line 1\nPHP Warning:  file_get_contents(): Failed to enable crypto in\/home\/user\/public_html\/script.php on line 1\nPHP Warning:  file_get_contents(https:\/\/domain.com\/index.html): failed to open stream: operation failed in\/home\/user\/public_html\/script.php on line 1<\/code><\/pre>\n<\/div>\n<p><!--more-->Padahal saya bisa pastikan sertifikat <em>SSL<\/em> digunakan <em>URL<\/em> tujuan memang benar-benar <em>valid.<\/em> Setelah melakukan pencarian beberapa orang lebih suka menyarankan untuk <a href=\"http:\/\/stackoverflow.com\/a\/38923262\/1412798\" target=\"_blank\">men-disable validasi SSL<\/a> ketika melakukan <em>request,<\/em> namun ternyata hal tersebut <a href=\"http:\/\/phpsecurity.readthedocs.org\/en\/latest\/_articles\/PHP-Security-Default-Vulnerabilities-Security-Omissions-And-Framing-Programmers.html\" target=\"_blank\">cukup berbahaya<\/a>.<\/p>\n<p>Akhirnya saya menemukan sumber yang menyarankan untuk menambahkan sertifikat <em>CA<\/em> dari <a href=\"http:\/\/curl.haxx.se\/docs\/caextract.html\" target=\"_blank\"><em>website<\/em> resmi <em>cURL<\/em><\/a> untuk dikonfigurasi dengan <em>PHP.<\/em> Caranya adalah dengan men-<em>download<\/em> <code>certs-yyyy-mm-dd.pem<\/code> ke <em>server,<\/em> buka <code>php.ini<\/code> dan tambahkan konfigurasi berikut:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-plain\" data-file=\"php.ini\" data-lang=\"INI\"><code>openssl.cafile=\/path\/to\/certs\/cacert-yyyy-mm-dd.pem<\/code><\/pre>\n<\/div>\n<p>Kemudian <em>restart<\/em> <code>apache<\/code>, jika berhasil seharusnya di <code>phpinfo()<\/code> akan muncul sertifikat <em>SSL<\/em> akan muncul di konfigurasi <code>openssl<\/code> <em>PHP<\/em>.<\/p>\n<figure id=\"attachment_1062\" aria-describedby=\"caption-attachment-1062\" style=\"width: 660px\" class=\"wp-caption aligncenter\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"size-large wp-image-1062\" src=\"https:\/\/i0.wp.com\/zaf.web.id\/blog\/wp-content\/uploads\/2017\/03\/Screen-Shot-2017-03-25-at-6.09.33-PM.png?resize=660%2C167&#038;ssl=1\" alt=\"CA File\" width=\"660\" height=\"167\" srcset=\"https:\/\/i0.wp.com\/zaf.web.id\/blog\/wp-content\/uploads\/2017\/03\/Screen-Shot-2017-03-25-at-6.09.33-PM.png?resize=1024%2C259&amp;ssl=1 1024w, https:\/\/i0.wp.com\/zaf.web.id\/blog\/wp-content\/uploads\/2017\/03\/Screen-Shot-2017-03-25-at-6.09.33-PM.png?resize=300%2C76&amp;ssl=1 300w, https:\/\/i0.wp.com\/zaf.web.id\/blog\/wp-content\/uploads\/2017\/03\/Screen-Shot-2017-03-25-at-6.09.33-PM.png?resize=768%2C194&amp;ssl=1 768w, https:\/\/i0.wp.com\/zaf.web.id\/blog\/wp-content\/uploads\/2017\/03\/Screen-Shot-2017-03-25-at-6.09.33-PM.png?resize=619%2C156&amp;ssl=1 619w, https:\/\/i0.wp.com\/zaf.web.id\/blog\/wp-content\/uploads\/2017\/03\/Screen-Shot-2017-03-25-at-6.09.33-PM.png?w=1908&amp;ssl=1 1908w\" sizes=\"auto, (max-width: 660px) 100vw, 660px\" \/><figcaption id=\"caption-attachment-1062\" class=\"wp-caption-text\">CA File<\/figcaption><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Sejak PHP versi 5.6 autentikasi SSL terhadap akses cURL (CURLOPT_SSL_VERIFYPEER) default menjadi TRUE. Hal ini&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":true,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_hide_featured_image":false,"_jetpack_featured_image_duplicate_dismissed":0,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[58],"tags":[209,210],"class_list":["post-1059","post","type-post","status-publish","format-standard","hentry","category-server","tag-ca-certs-php","tag-file_get_contents"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Menambahkan sertifikat SSL untuk cURL di PHP - Ahmad Zafrullah<\/title>\n<meta name=\"description\" content=\"Konfigurasi sertifikat SSL dengan men-download file certs*.pem dari website resmi cURL, tambahkan di cert path openssl untuk PHP, restart apache.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/zaf.web.id\/blog\/menambahkan-sertifikat-ssl-untuk-curl-di-php\/\" \/>\n<meta property=\"og:locale\" content=\"id_ID\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Menambahkan sertifikat SSL untuk cURL di PHP - Ahmad Zafrullah\" \/>\n<meta property=\"og:description\" content=\"Konfigurasi sertifikat SSL dengan men-download file certs*.pem dari website resmi cURL, tambahkan di cert path openssl untuk PHP, restart apache.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/zaf.web.id\/blog\/menambahkan-sertifikat-ssl-untuk-curl-di-php\/\" \/>\n<meta property=\"og:site_name\" content=\"Ahmad Zafrullah\" \/>\n<meta property=\"article:publisher\" content=\"http:\/\/www.facebook.com\/23Pstars\" \/>\n<meta property=\"article:author\" content=\"http:\/\/www.facebook.com\/23Pstars\" \/>\n<meta property=\"article:published_time\" content=\"2017-03-25T11:45:08+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-11-14T14:03:36+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/zaf.web.id\/blog\/wp-content\/uploads\/2017\/03\/ssl-certificate.png\" \/>\n<meta name=\"author\" content=\"Zaf\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@23Pstars\" \/>\n<meta name=\"twitter:site\" content=\"@23Pstars\" \/>\n<meta name=\"twitter:label1\" content=\"Ditulis oleh\" \/>\n\t<meta name=\"twitter:data1\" content=\"Zaf\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimasi waktu membaca\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 menit\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/zaf.web.id\\\/blog\\\/menambahkan-sertifikat-ssl-untuk-curl-di-php\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/zaf.web.id\\\/blog\\\/menambahkan-sertifikat-ssl-untuk-curl-di-php\\\/\"},\"author\":{\"name\":\"Zaf\",\"@id\":\"https:\\\/\\\/zaf.web.id\\\/blog\\\/#\\\/schema\\\/person\\\/ba4e955d59a1e6a8284857e74b14e5ed\"},\"headline\":\"Menambahkan sertifikat SSL untuk cURL di PHP\",\"datePublished\":\"2017-03-25T11:45:08+00:00\",\"dateModified\":\"2026-11-14T14:03:36+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/zaf.web.id\\\/blog\\\/menambahkan-sertifikat-ssl-untuk-curl-di-php\\\/\"},\"wordCount\":199,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/zaf.web.id\\\/blog\\\/#\\\/schema\\\/person\\\/ba4e955d59a1e6a8284857e74b14e5ed\"},\"image\":{\"@id\":\"https:\\\/\\\/zaf.web.id\\\/blog\\\/menambahkan-sertifikat-ssl-untuk-curl-di-php\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/zaf.web.id\\\/blog\\\/wp-content\\\/uploads\\\/2017\\\/03\\\/ssl-certificate.png\",\"keywords\":[\"CA certs PHP\",\"file_get_contents\"],\"articleSection\":[\"Server\"],\"inLanguage\":\"id\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/zaf.web.id\\\/blog\\\/menambahkan-sertifikat-ssl-untuk-curl-di-php\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/zaf.web.id\\\/blog\\\/menambahkan-sertifikat-ssl-untuk-curl-di-php\\\/\",\"url\":\"https:\\\/\\\/zaf.web.id\\\/blog\\\/menambahkan-sertifikat-ssl-untuk-curl-di-php\\\/\",\"name\":\"Menambahkan sertifikat SSL untuk cURL di PHP - Ahmad Zafrullah\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/zaf.web.id\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/zaf.web.id\\\/blog\\\/menambahkan-sertifikat-ssl-untuk-curl-di-php\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/zaf.web.id\\\/blog\\\/menambahkan-sertifikat-ssl-untuk-curl-di-php\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/zaf.web.id\\\/blog\\\/wp-content\\\/uploads\\\/2017\\\/03\\\/ssl-certificate.png\",\"datePublished\":\"2017-03-25T11:45:08+00:00\",\"dateModified\":\"2026-11-14T14:03:36+00:00\",\"description\":\"Konfigurasi sertifikat SSL dengan men-download file certs*.pem dari website resmi cURL, tambahkan di cert path openssl untuk PHP, restart apache.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/zaf.web.id\\\/blog\\\/menambahkan-sertifikat-ssl-untuk-curl-di-php\\\/#breadcrumb\"},\"inLanguage\":\"id\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/zaf.web.id\\\/blog\\\/menambahkan-sertifikat-ssl-untuk-curl-di-php\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"id\",\"@id\":\"https:\\\/\\\/zaf.web.id\\\/blog\\\/menambahkan-sertifikat-ssl-untuk-curl-di-php\\\/#primaryimage\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/zaf.web.id\\\/blog\\\/wp-content\\\/uploads\\\/2017\\\/03\\\/ssl-certificate.png?fit=289%2C240&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/zaf.web.id\\\/blog\\\/wp-content\\\/uploads\\\/2017\\\/03\\\/ssl-certificate.png?fit=289%2C240&ssl=1\",\"width\":289,\"height\":240,\"caption\":\"SSL Certificate Logo\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/zaf.web.id\\\/blog\\\/menambahkan-sertifikat-ssl-untuk-curl-di-php\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/zaf.web.id\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Menambahkan sertifikat SSL untuk cURL di PHP\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/zaf.web.id\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/zaf.web.id\\\/blog\\\/\",\"name\":\"Ahmad Zafrullah\",\"description\":\"Work to Learn is better than Learn how to Work\",\"publisher\":{\"@id\":\"https:\\\/\\\/zaf.web.id\\\/blog\\\/#\\\/schema\\\/person\\\/ba4e955d59a1e6a8284857e74b14e5ed\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/zaf.web.id\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"id\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/zaf.web.id\\\/blog\\\/#\\\/schema\\\/person\\\/ba4e955d59a1e6a8284857e74b14e5ed\",\"name\":\"Zaf\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"id\",\"@id\":\"https:\\\/\\\/i0.wp.com\\\/zaf.web.id\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/09\\\/zaf_auto_x2.jpeg?fit=300%2C300&ssl=1\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/zaf.web.id\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/09\\\/zaf_auto_x2.jpeg?fit=300%2C300&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/zaf.web.id\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/09\\\/zaf_auto_x2.jpeg?fit=300%2C300&ssl=1\",\"width\":300,\"height\":300,\"caption\":\"Zaf\"},\"logo\":{\"@id\":\"https:\\\/\\\/i0.wp.com\\\/zaf.web.id\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/09\\\/zaf_auto_x2.jpeg?fit=300%2C300&ssl=1\"},\"sameAs\":[\"http:\\\/\\\/zaf.web.id\",\"http:\\\/\\\/www.facebook.com\\\/23Pstars\",\"https:\\\/\\\/x.com\\\/23Pstars\"],\"url\":\"https:\\\/\\\/zaf.web.id\\\/blog\\\/author\\\/zaf\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Menambahkan sertifikat SSL untuk cURL di PHP - Ahmad Zafrullah","description":"Konfigurasi sertifikat SSL dengan men-download file certs*.pem dari website resmi cURL, tambahkan di cert path openssl untuk PHP, restart apache.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/zaf.web.id\/blog\/menambahkan-sertifikat-ssl-untuk-curl-di-php\/","og_locale":"id_ID","og_type":"article","og_title":"Menambahkan sertifikat SSL untuk cURL di PHP - Ahmad Zafrullah","og_description":"Konfigurasi sertifikat SSL dengan men-download file certs*.pem dari website resmi cURL, tambahkan di cert path openssl untuk PHP, restart apache.","og_url":"https:\/\/zaf.web.id\/blog\/menambahkan-sertifikat-ssl-untuk-curl-di-php\/","og_site_name":"Ahmad Zafrullah","article_publisher":"http:\/\/www.facebook.com\/23Pstars","article_author":"http:\/\/www.facebook.com\/23Pstars","article_published_time":"2017-03-25T11:45:08+00:00","article_modified_time":"2026-11-14T14:03:36+00:00","og_image":[{"url":"https:\/\/zaf.web.id\/blog\/wp-content\/uploads\/2017\/03\/ssl-certificate.png","type":"","width":"","height":""}],"author":"Zaf","twitter_card":"summary_large_image","twitter_creator":"@23Pstars","twitter_site":"@23Pstars","twitter_misc":{"Ditulis oleh":"Zaf","Estimasi waktu membaca":"1 menit"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/zaf.web.id\/blog\/menambahkan-sertifikat-ssl-untuk-curl-di-php\/#article","isPartOf":{"@id":"https:\/\/zaf.web.id\/blog\/menambahkan-sertifikat-ssl-untuk-curl-di-php\/"},"author":{"name":"Zaf","@id":"https:\/\/zaf.web.id\/blog\/#\/schema\/person\/ba4e955d59a1e6a8284857e74b14e5ed"},"headline":"Menambahkan sertifikat SSL untuk cURL di PHP","datePublished":"2017-03-25T11:45:08+00:00","dateModified":"2026-11-14T14:03:36+00:00","mainEntityOfPage":{"@id":"https:\/\/zaf.web.id\/blog\/menambahkan-sertifikat-ssl-untuk-curl-di-php\/"},"wordCount":199,"commentCount":0,"publisher":{"@id":"https:\/\/zaf.web.id\/blog\/#\/schema\/person\/ba4e955d59a1e6a8284857e74b14e5ed"},"image":{"@id":"https:\/\/zaf.web.id\/blog\/menambahkan-sertifikat-ssl-untuk-curl-di-php\/#primaryimage"},"thumbnailUrl":"https:\/\/zaf.web.id\/blog\/wp-content\/uploads\/2017\/03\/ssl-certificate.png","keywords":["CA certs PHP","file_get_contents"],"articleSection":["Server"],"inLanguage":"id","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/zaf.web.id\/blog\/menambahkan-sertifikat-ssl-untuk-curl-di-php\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/zaf.web.id\/blog\/menambahkan-sertifikat-ssl-untuk-curl-di-php\/","url":"https:\/\/zaf.web.id\/blog\/menambahkan-sertifikat-ssl-untuk-curl-di-php\/","name":"Menambahkan sertifikat SSL untuk cURL di PHP - Ahmad Zafrullah","isPartOf":{"@id":"https:\/\/zaf.web.id\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/zaf.web.id\/blog\/menambahkan-sertifikat-ssl-untuk-curl-di-php\/#primaryimage"},"image":{"@id":"https:\/\/zaf.web.id\/blog\/menambahkan-sertifikat-ssl-untuk-curl-di-php\/#primaryimage"},"thumbnailUrl":"https:\/\/zaf.web.id\/blog\/wp-content\/uploads\/2017\/03\/ssl-certificate.png","datePublished":"2017-03-25T11:45:08+00:00","dateModified":"2026-11-14T14:03:36+00:00","description":"Konfigurasi sertifikat SSL dengan men-download file certs*.pem dari website resmi cURL, tambahkan di cert path openssl untuk PHP, restart apache.","breadcrumb":{"@id":"https:\/\/zaf.web.id\/blog\/menambahkan-sertifikat-ssl-untuk-curl-di-php\/#breadcrumb"},"inLanguage":"id","potentialAction":[{"@type":"ReadAction","target":["https:\/\/zaf.web.id\/blog\/menambahkan-sertifikat-ssl-untuk-curl-di-php\/"]}]},{"@type":"ImageObject","inLanguage":"id","@id":"https:\/\/zaf.web.id\/blog\/menambahkan-sertifikat-ssl-untuk-curl-di-php\/#primaryimage","url":"https:\/\/i0.wp.com\/zaf.web.id\/blog\/wp-content\/uploads\/2017\/03\/ssl-certificate.png?fit=289%2C240&ssl=1","contentUrl":"https:\/\/i0.wp.com\/zaf.web.id\/blog\/wp-content\/uploads\/2017\/03\/ssl-certificate.png?fit=289%2C240&ssl=1","width":289,"height":240,"caption":"SSL Certificate Logo"},{"@type":"BreadcrumbList","@id":"https:\/\/zaf.web.id\/blog\/menambahkan-sertifikat-ssl-untuk-curl-di-php\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/zaf.web.id\/blog\/"},{"@type":"ListItem","position":2,"name":"Menambahkan sertifikat SSL untuk cURL di PHP"}]},{"@type":"WebSite","@id":"https:\/\/zaf.web.id\/blog\/#website","url":"https:\/\/zaf.web.id\/blog\/","name":"Ahmad Zafrullah","description":"Work to Learn is better than Learn how to Work","publisher":{"@id":"https:\/\/zaf.web.id\/blog\/#\/schema\/person\/ba4e955d59a1e6a8284857e74b14e5ed"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/zaf.web.id\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"id"},{"@type":["Person","Organization"],"@id":"https:\/\/zaf.web.id\/blog\/#\/schema\/person\/ba4e955d59a1e6a8284857e74b14e5ed","name":"Zaf","image":{"@type":"ImageObject","inLanguage":"id","@id":"https:\/\/i0.wp.com\/zaf.web.id\/blog\/wp-content\/uploads\/2024\/09\/zaf_auto_x2.jpeg?fit=300%2C300&ssl=1","url":"https:\/\/i0.wp.com\/zaf.web.id\/blog\/wp-content\/uploads\/2024\/09\/zaf_auto_x2.jpeg?fit=300%2C300&ssl=1","contentUrl":"https:\/\/i0.wp.com\/zaf.web.id\/blog\/wp-content\/uploads\/2024\/09\/zaf_auto_x2.jpeg?fit=300%2C300&ssl=1","width":300,"height":300,"caption":"Zaf"},"logo":{"@id":"https:\/\/i0.wp.com\/zaf.web.id\/blog\/wp-content\/uploads\/2024\/09\/zaf_auto_x2.jpeg?fit=300%2C300&ssl=1"},"sameAs":["http:\/\/zaf.web.id","http:\/\/www.facebook.com\/23Pstars","https:\/\/x.com\/23Pstars"],"url":"https:\/\/zaf.web.id\/blog\/author\/zaf\/"}]}},"jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":1322,"url":"https:\/\/zaf.web.id\/blog\/mengganti-webuzo-dengan-centos-web-panel\/","url_meta":{"origin":1059,"position":0},"title":"Mengganti Webuzo dengan CentOS Web Panel","author":"Zaf","date":"Agustus 21, 2018","format":false,"excerpt":"Setelah beberapa tahun terakhir aktif menggunakan Webuzo, tiba saatnya move on kepada software lain. Kali ini tempat singgah berikutnya adalah CentOS Web Panel (CWP). CWP merupakan panel control untuk kebutuhan website pada server dengan distro CentOS. Dengan banyaknya domain yang terdistribusi dalam beberapa server LRsoft, proses migrasi mungkin akan memakan\u2026","rel":"","context":"dalam &quot;Internet&quot;","block_context":{"text":"Internet","link":"https:\/\/zaf.web.id\/blog\/category\/internet\/"},"img":{"alt_text":"CWP Pro","src":"https:\/\/i0.wp.com\/zaf.web.id\/blog\/wp-content\/uploads\/2018\/09\/Screen-Shot-2018-09-21-at-09.58.12.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/zaf.web.id\/blog\/wp-content\/uploads\/2018\/09\/Screen-Shot-2018-09-21-at-09.58.12.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/zaf.web.id\/blog\/wp-content\/uploads\/2018\/09\/Screen-Shot-2018-09-21-at-09.58.12.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/zaf.web.id\/blog\/wp-content\/uploads\/2018\/09\/Screen-Shot-2018-09-21-at-09.58.12.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":2189,"url":"https:\/\/zaf.web.id\/blog\/migrasi-ke-docker\/","url_meta":{"origin":1059,"position":1},"title":"Migrasi ke Docker","author":"Zaf","date":"Oktober 14, 2026","format":false,"excerpt":"Hampir sepuluh tahun terakhir semua website yang saya kelola selalu berjalan di atas web panel. Dimulai dari Webuzo, lalu pindah ke CentOS Web Panel, sempat singgah di aaPanel, dan akhirnya sekarang semuanya saya pindahkan ke Docker. Tulisan ini merangkum alasan dan cara migrasinya. Manajemen pakai panel Panel sangat membantu di\u2026","rel":"","context":"dalam &quot;DevOps&quot;","block_context":{"text":"DevOps","link":"https:\/\/zaf.web.id\/blog\/category\/devops\/"},"img":{"alt_text":"Ilustrasi perjalanan dari web panel ke Docker container","src":"https:\/\/i0.wp.com\/zaf.web.id\/blog\/wp-content\/uploads\/2026\/11\/migrasi-docker-dari-panel-ke-container.jpg?fit=1200%2C674&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/zaf.web.id\/blog\/wp-content\/uploads\/2026\/11\/migrasi-docker-dari-panel-ke-container.jpg?fit=1200%2C674&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/zaf.web.id\/blog\/wp-content\/uploads\/2026\/11\/migrasi-docker-dari-panel-ke-container.jpg?fit=1200%2C674&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/zaf.web.id\/blog\/wp-content\/uploads\/2026\/11\/migrasi-docker-dari-panel-ke-container.jpg?fit=1200%2C674&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/zaf.web.id\/blog\/wp-content\/uploads\/2026\/11\/migrasi-docker-dari-panel-ke-container.jpg?fit=1200%2C674&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":2073,"url":"https:\/\/zaf.web.id\/blog\/perbaikan-web-dengan-mesin-ojs-setelah-migrasi-ke-proxy-cloudflare\/","url_meta":{"origin":1059,"position":2},"title":"Perbaikan Web dengan Mesin OJS Setelah Migrasi ke Proxy Cloudflare","author":"Zaf","date":"Agustus 29, 2024","format":false,"excerpt":"Masalah Dampak yang sering dialami setelah proses migrasi ke proxy cloudflare adalah web menjadi redirect berkali-kali. Sesuaikan Konfigurasi Terdapat beberapa penyesuaian yang perlu dilakukan pada file config.inc.php Atur agar selalu menggunakan https base_url = \"https:\/\/domain.com\" Matikan SSL otomatis force_ssl = Off force_login_ssl = Off Matikan session check IP juga agar\u2026","rel":"","context":"dalam &quot;Security&quot;","block_context":{"text":"Security","link":"https:\/\/zaf.web.id\/blog\/category\/security\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/zaf.web.id\/blog\/wp-content\/uploads\/2024\/08\/ERR_TOO_MANY_REDIRECTS-in-chrome-e1724895816567.png?fit=1200%2C501&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/zaf.web.id\/blog\/wp-content\/uploads\/2024\/08\/ERR_TOO_MANY_REDIRECTS-in-chrome-e1724895816567.png?fit=1200%2C501&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/zaf.web.id\/blog\/wp-content\/uploads\/2024\/08\/ERR_TOO_MANY_REDIRECTS-in-chrome-e1724895816567.png?fit=1200%2C501&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/zaf.web.id\/blog\/wp-content\/uploads\/2024\/08\/ERR_TOO_MANY_REDIRECTS-in-chrome-e1724895816567.png?fit=1200%2C501&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/zaf.web.id\/blog\/wp-content\/uploads\/2024\/08\/ERR_TOO_MANY_REDIRECTS-in-chrome-e1724895816567.png?fit=1200%2C501&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":1034,"url":"https:\/\/zaf.web.id\/blog\/akses-akun-email-yandex-dari-gmail\/","url_meta":{"origin":1059,"position":3},"title":"Akses akun email Yandex dari Gmail","author":"Zaf","date":"Februari 13, 2017","format":false,"excerpt":"Beberapa tahun terakhir saya kerap kali menggunakan layanan Yandex untuk keperluan host email dengan custom domain. Selain free (tentunya),\u00a0fasilitas yang diberikan juga tidak kalah bagusnya dengan Gmail. Mulai dari UI\/UX, security, CNAME, dan customization lainnya sejauh ini cukup memuaskan. Hari ini saya\u00a0memberikan layanan email ke tim LRsoft dengan domain @lrsoft.id,\u2026","rel":"","context":"dalam &quot;Coretan&quot;","block_context":{"text":"Coretan","link":"https:\/\/zaf.web.id\/blog\/category\/coretan\/"},"img":{"alt_text":"POP access Yandex mail","src":"https:\/\/i0.wp.com\/zaf.web.id\/blog\/wp-content\/uploads\/2017\/02\/Screen-Shot-2017-02-13-at-1.25.08-PM.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/zaf.web.id\/blog\/wp-content\/uploads\/2017\/02\/Screen-Shot-2017-02-13-at-1.25.08-PM.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/zaf.web.id\/blog\/wp-content\/uploads\/2017\/02\/Screen-Shot-2017-02-13-at-1.25.08-PM.png?resize=525%2C300&ssl=1 1.5x"},"classes":[]},{"id":1957,"url":"https:\/\/zaf.web.id\/blog\/rekomendasi-keamanan-upload-dir-pada-aplikasi-web\/","url_meta":{"origin":1059,"position":4},"title":"Rekomendasi Keamanan Upload Dir pada Aplikasi Web","author":"Zaf","date":"Mei 14, 2026","format":false,"excerpt":"Tidak sedikit serangan yang terjadi terhadap website yang mengincar File Upload Vulnerabilities, khususnya website yang berbasis engine populer seperti WordPress. Polanya hampir selalu sama: penyerang menemukan celah di form upload, plugin, atau theme, lalu mengunggah web shell berekstensi .php. Setelah web shell bisa dieksekusi, penyerang bebas menyisipkan malware ke file\u2026","rel":"","context":"dalam &quot;Security&quot;","block_context":{"text":"Security","link":"https:\/\/zaf.web.id\/blog\/category\/security\/"},"img":{"alt_text":"Ilustrasi folder terkunci dan file PHP yang diblokir","src":"https:\/\/i0.wp.com\/zaf.web.id\/blog\/wp-content\/uploads\/2026\/11\/keamanan-upload-dir-chattr.jpg?fit=1200%2C674&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/zaf.web.id\/blog\/wp-content\/uploads\/2026\/11\/keamanan-upload-dir-chattr.jpg?fit=1200%2C674&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/zaf.web.id\/blog\/wp-content\/uploads\/2026\/11\/keamanan-upload-dir-chattr.jpg?fit=1200%2C674&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/zaf.web.id\/blog\/wp-content\/uploads\/2026\/11\/keamanan-upload-dir-chattr.jpg?fit=1200%2C674&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/zaf.web.id\/blog\/wp-content\/uploads\/2026\/11\/keamanan-upload-dir-chattr.jpg?fit=1200%2C674&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":2210,"url":"https:\/\/zaf.web.id\/blog\/deteksi-otomatis-spam-judi-online-notifikasi-telegram\/","url_meta":{"origin":1059,"position":5},"title":"Deteksi Otomatis Spam Judi Online di Server + Notifikasi Telegram","author":"Zaf","date":"Februari 8, 2026","format":false,"excerpt":"Di tulisan Berburu Malware di Server Linux saya membagikan perintah manual untuk mencari halaman slot dan judi yang disisipkan ke website. Masalahnya, cara manual baru dilakukan setelah ada laporan. Kali ini kita otomatiskan: server memindai dirinya sendiri dan melapor ke Telegram, mirip dengan tulisan saya tentang logging PHP ke Telegram.\u2026","rel":"","context":"dalam &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/zaf.web.id\/blog\/category\/programming\/"},"img":{"alt_text":"Notifikasi Telegram peringatan spam judi online dari server","src":"https:\/\/i0.wp.com\/zaf.web.id\/blog\/wp-content\/uploads\/2026\/10\/AaFdO_TNeLM_oLjVSGt20w-AaFdO_TNb-2buyUn0rNnOA.jpg?fit=1200%2C674&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/zaf.web.id\/blog\/wp-content\/uploads\/2026\/10\/AaFdO_TNeLM_oLjVSGt20w-AaFdO_TNb-2buyUn0rNnOA.jpg?fit=1200%2C674&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/zaf.web.id\/blog\/wp-content\/uploads\/2026\/10\/AaFdO_TNeLM_oLjVSGt20w-AaFdO_TNb-2buyUn0rNnOA.jpg?fit=1200%2C674&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/zaf.web.id\/blog\/wp-content\/uploads\/2026\/10\/AaFdO_TNeLM_oLjVSGt20w-AaFdO_TNb-2buyUn0rNnOA.jpg?fit=1200%2C674&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/zaf.web.id\/blog\/wp-content\/uploads\/2026\/10\/AaFdO_TNeLM_oLjVSGt20w-AaFdO_TNb-2buyUn0rNnOA.jpg?fit=1200%2C674&ssl=1&resize=1050%2C600 3x"},"classes":[]}],"jetpack_likes_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p4zLnS-h5","jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/zaf.web.id\/blog\/wp-json\/wp\/v2\/posts\/1059","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/zaf.web.id\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/zaf.web.id\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/zaf.web.id\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/zaf.web.id\/blog\/wp-json\/wp\/v2\/comments?post=1059"}],"version-history":[{"count":5,"href":"https:\/\/zaf.web.id\/blog\/wp-json\/wp\/v2\/posts\/1059\/revisions"}],"predecessor-version":[{"id":2275,"href":"https:\/\/zaf.web.id\/blog\/wp-json\/wp\/v2\/posts\/1059\/revisions\/2275"}],"wp:attachment":[{"href":"https:\/\/zaf.web.id\/blog\/wp-json\/wp\/v2\/media?parent=1059"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/zaf.web.id\/blog\/wp-json\/wp\/v2\/categories?post=1059"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/zaf.web.id\/blog\/wp-json\/wp\/v2\/tags?post=1059"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}