{"id":15099143,"url":"https://github.com/pronamic/wp-http-extended-ssl-support","last_synced_at":"2026-02-09T21:12:26.544Z","repository":{"id":243830072,"uuid":"813573386","full_name":"pronamic/wp-http-extended-ssl-support","owner":"pronamic","description":"This library extends the WordPress HTTP API with additional SSL options. It provides the option to pass the cURL options CURLOPT_SSLCERT, CURLOPT_SSLKEY and CURLOPT_SSLKEYPASSWD to requests.","archived":false,"fork":false,"pushed_at":"2024-09-09T13:59:36.000Z","size":25,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"main","last_synced_at":"2024-10-01T06:40:59.622Z","etag":null,"topics":["curl","http","pronamic","ssl","ssl-certificates","tls","tls-certificate","wordpress","wordpress-api","wordpress-hooks","wordpress-http-api","wordpress-https","wordpress-plugin"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pronamic.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-06-11T10:32:16.000Z","updated_at":"2024-09-09T13:59:39.000Z","dependencies_parsed_at":"2024-10-01T06:40:56.537Z","dependency_job_id":"868ebfd5-d128-4f4c-b502-5a548c55c25e","html_url":"https://github.com/pronamic/wp-http-extended-ssl-support","commit_stats":{"total_commits":20,"total_committers":2,"mean_commits":10.0,"dds":0.09999999999999998,"last_synced_commit":"b0ac146117eb557de787acea3babbe3d82e9eb01"},"previous_names":["pronamic/wp-http-extended-ssl-support"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pronamic%2Fwp-http-extended-ssl-support","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pronamic%2Fwp-http-extended-ssl-support/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pronamic%2Fwp-http-extended-ssl-support/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pronamic%2Fwp-http-extended-ssl-support/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pronamic","download_url":"https://codeload.github.com/pronamic/wp-http-extended-ssl-support/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":219842695,"owners_count":16556526,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["curl","http","pronamic","ssl","ssl-certificates","tls","tls-certificate","wordpress","wordpress-api","wordpress-hooks","wordpress-http-api","wordpress-https","wordpress-plugin"],"created_at":"2024-09-25T17:06:26.575Z","updated_at":"2026-02-09T21:12:26.485Z","avatar_url":"https://github.com/pronamic.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Additional SSL Options for WordPress HTTP API\n\nThis library extends the WordPress HTTP API with additional SSL options. It provides the option to pass the cURL options `CURLOPT_SSLCERT`, `CURLOPT_SSLKEY` and `CURLOPT_SSLKEYPASSWD` to requests.\n\n## Usage\n\n```php\n\\wp_remote_get(\n\t$url,\n\t[\n\t\t'ssl_certificate'  =\u003e \\ABSPATH . '/../private/your-certificate.pem',\n\t\t'ssl_key'          =\u003e \\ABSPATH . '/../private/your-key.pem',\n\t\t'ssl_key_password' =\u003e 'your-password', \n\t]\n);\n```\n\n```php\n\\wp_remote_get(\n\t$url,\n\t[\n\t\t'ssl_certificate_blob' =\u003e '-----BEGIN CERTIFICATE-----', // Must be a full SSL certificate string.\n\t\t'ssl_key_blob'         =\u003e '-----BEGIN ENCRYPTED PRIVATE KEY-----', // Must be a full SSL key string.\n\t\t'ssl_key_password'     =\u003e 'your-password', \n\t]\n);\n```\n\n## TLS backends and cURL\n\nIt is good to realize that PHP and cURL can work with different TLS backends. Not all TLS backends have support for all cURL SSL options. An overview of all cURL options and their support in the various TLS backends can be found at https://curl.se/libcurl/c/tls-options.html, below a part of this table from June 11, 2024:\n\n\u003e libcurl can use different TLS backends, selected at both build-time and run-time. This table shows all TLS related options and details the set of TLS backends that work with it.\n\u003e \n\u003e The **OpenSSL** column also covers BoringSSL, libressl, quictls, AWS-LC and AmiSSL.\n\u003e \n\u003e option | BearSSL | GnuTLS | mbedTLS | OpenSSL | rustls | Schannel | Secure Transport | wolfSSL\n\u003e -- | -- | -- | -- | -- | -- | -- | -- | --\n\u003e `CURLOPT_KEYPASSWD` |   |   | ✔ | ✔ |   | ✔ |   | ✔\n\u003e `CURLOPT_SSLCERT` |   | ✔ | ✔ | ✔ |   | ✔ | ✔ | ✔\n\u003e `CURLOPT_SSLCERTTYPE` |   | ✔ | ✔ | ✔ |   | ✔ | ✔ | ✔\n\u003e `CURLOPT_SSLCERT_BLOB` |   |   | ✔ | ✔ |   | ✔ | ✔ |  \n\u003e `CURLOPT_SSLENGINE` |   |   |   | ✔ |   |   |   |  \n\u003e `CURLOPT_SSLENGINE_DEFAULT` |   |   |   | ✔ |   |   |   |  \n\u003e `CURLOPT_SSLKEY` |   |   | ✔ | ✔ |   | ✔ |   | ✔\n\u003e `CURLOPT_SSLKEYTYPE` | ✔ |   |   | ✔ |   |   |   | ✔\n\u003e `CURLOPT_SSLKEY_BLOB` |   |   |   | ✔ |   |   |   |  \n\u003e `CURLOPT_SSLVERSION`  | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔\n\n## Links\n\n- https://github.com/WordPress/Requests/issues/377\n- https://core.trac.wordpress.org/ticket/34883\n- https://curl.se/libcurl/c/tls-options.html\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpronamic%2Fwp-http-extended-ssl-support","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpronamic%2Fwp-http-extended-ssl-support","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpronamic%2Fwp-http-extended-ssl-support/lists"}