{"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":"2017-03-25T12:13:01","modified_gmt":"2017-03-25T12:13:01","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\u00a0autentikasi <em>SSL<\/em> terhadap akses <em>cURL<\/em> (<code>CURLOPT_SSL_VERIFYPEER<\/code>) <em>default<\/em> menjadi <code>TRUE<\/code>. Hal ini mengakibatkan\u00a0ketika menggunakan fungsi <code>file_get_contents()<\/code> selalu melakukan\u00a0validasi 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\u00a0<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<pre class=\"brush: bash; title: ; notranslate\" title=\"\">PHP Warning:\u00a0 file_get_contents(): SSL operation failed with code 1. OpenSSL Error messages:\r\nerror:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed in \/home\/user\/public_html\/script.php on line\u00a01\r\nPHP Warning:\u00a0 file_get_contents(): Failed to enable crypto in\/home\/user\/public_html\/script.php on line\u00a01\r\nPHP Warning:\u00a0 file_get_contents(https:\/\/domain.com\/index.html): failed to open stream: operation failed in\/home\/user\/public_html\/script.php on line\u00a01<\/pre>\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\u00a0orang lebih suka menyarankan untuk\u00a0<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\u00a0dikonfigurasi 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<pre class=\"brush: php; title: ; notranslate\" title=\"\">openssl.cafile=\/path\/to\/certs\/cacert-yyyy-mm-dd.pem<\/pre>\n<p>Kemudian <em>restart<\/em> <code>apache<\/code>, jika berhasil seharusnya di <code>phpinfo()<\/code> akan muncul\u00a0sertifikat <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\u00a0autentikasi SSL terhadap akses cURL (CURLOPT_SSL_VERIFYPEER) default menjadi TRUE. Hal ini mengakibatkan\u00a0ketika&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_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.7 - 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=\"2017-03-25T12:13:01+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\":\"2017-03-25T12:13:01+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/zaf.web.id\\\/blog\\\/menambahkan-sertifikat-ssl-untuk-curl-di-php\\\/\"},\"wordCount\":285,\"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\":\"2017-03-25T12:13:01+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":"2017-03-25T12:13:01+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":"2017-03-25T12:13:01+00:00","mainEntityOfPage":{"@id":"https:\/\/zaf.web.id\/blog\/menambahkan-sertifikat-ssl-untuk-curl-di-php\/"},"wordCount":285,"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":"2017-03-25T12:13:01+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":2073,"url":"https:\/\/zaf.web.id\/blog\/perbaikan-web-dengan-mesin-ojs-setelah-migrasi-ke-proxy-cloudflare\/","url_meta":{"origin":1059,"position":1},"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":2210,"url":"https:\/\/zaf.web.id\/blog\/deteksi-otomatis-spam-judi-online-notifikasi-telegram\/","url_meta":{"origin":1059,"position":2},"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":[]},{"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":642,"url":"https:\/\/zaf.web.id\/blog\/membuat-booking-form-widget-di-wordpress\/","url_meta":{"origin":1059,"position":4},"title":"Membuat Booking Form Widget di WordPress","author":"Zaf","date":"September 19, 2015","format":false,"excerpt":"Kali ini saya akan coba membuat\u00a0Booking Form Widget untuk Fastboat di WordPress, secara konsep sebetulnya hampir sama untuk penggunaan pada\u00a0booking platform yang lain. Hanya saja untuk Fastboat kali ini menggunakan API dari Fastboat System yang sudah ada. Pertama-tama adalah\u00a0membuat class untuk Widget yang akan dibuat didalam file functions.php theme yang\u2026","rel":"","context":"dalam &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/zaf.web.id\/blog\/category\/programming\/"},"img":{"alt_text":"Fastboat Booking","src":"https:\/\/i0.wp.com\/zaf.web.id\/blog\/wp-content\/uploads\/2015\/09\/Screen-Shot-2015-09-17-at-3.19.46-PM1.png?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":1053,"url":"https:\/\/zaf.web.id\/blog\/fetching-photo-berdasarkan-tags-di-instagram\/","url_meta":{"origin":1059,"position":5},"title":"Fetching photo berdasarkan tags di Instagram","author":"Zaf","date":"Mei 2, 2017","format":false,"excerpt":"Beberapa waktu yang lalu Dwohoo.com menambahkan fitur untuk menampilkan daftar foto yang\u00a0berkaitan dengan destinasi yang sedang dibahas dalam suatu artikel. Foto-foto tersebut diambil secara langsung dari Instagram. Instagram memiliki API bagi para developer yang hendak mengembangkan aplikasi lanjutan, tapi kali ini saya tidak menggunakan API tersebut.\u00a0Selain\u00a0ribet, tahapannya juga cukup banyak\u2026","rel":"","context":"dalam &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/zaf.web.id\/blog\/category\/programming\/"},"img":{"alt_text":"Sidebar instagram tags","src":"https:\/\/i0.wp.com\/zaf.web.id\/blog\/wp-content\/uploads\/2017\/03\/Screen-Shot-2017-04-08-at-8.46.12-AM-247x300.png?resize=350%2C200&ssl=1","width":350,"height":200},"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":4,"href":"https:\/\/zaf.web.id\/blog\/wp-json\/wp\/v2\/posts\/1059\/revisions"}],"predecessor-version":[{"id":1065,"href":"https:\/\/zaf.web.id\/blog\/wp-json\/wp\/v2\/posts\/1059\/revisions\/1065"}],"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}]}}