gutenberg icon indicating copy to clipboard operation
gutenberg copied to clipboard

wp-env https support 8211

Open bgoewert opened this issue 1 year ago • 4 comments

What?

Provides HTTPS support for wp-env by allows to define the ports used for HTTPS, path of the certificate files, and even creates certificate files if none are specified.

Why?

Addresses #8211 Old PR #53959

For another use case, I'm currently developing a plugin for CSP management, and Chromium browsers require HTTPS for the report-to directive.

I'm sure there are other scenarios that require the use of HTTPS. This allows inexperienced users to easily enable HTTPS if necessary.

How?

If https is enabled in the .wp-env.json config, it uses the default or user defined ports and certificate keypair to enable. You can define a certificate keypair to be used or let devcert create certificates if none are defined. A new apache config is created and enabled using this cert. The the WP_HOME and WP_SITEURL constants are updated as well.

Testing Instructions

  1. Add "https": true to .wp-env.json or .wp-env.override.json
  2. Run wp-env start

To define ports: Add "httpsPort": 1234 and/or "testsHttpsPort": 5678 to the config root.

To define certificate files: Add "sslCertPath": "/path/to/file.crt" and "sslKeyPath": "/path/to/file.key" to the config root. Both must be defined.

Note that because of my limited experience, I have not tested with xdebug and the like. However, both the development and tests instances uses the certificate as expected.

bgoewert avatar Oct 20 '24 22:10 bgoewert

Warning: Type of PR label mismatch

To merge this PR, it requires exactly 1 label indicating the type of PR. Other labels are optional and not being checked here.

  • Type-related labels to choose from: [Type] Automated Testing, [Type] Breaking Change, [Type] Bug, [Type] Build Tooling, [Type] Code Quality, [Type] Copy, [Type] Developer Documentation, [Type] Enhancement, [Type] Experimental, [Type] Feature, [Type] New API, [Type] Task, [Type] Technical Prototype, [Type] Performance, [Type] Project Management, [Type] Regression, [Type] Security, [Type] WP Core Ticket, Backport from WordPress Core, Gutenberg Plugin.
  • Labels found: First-time Contributor, [Tool] Env.

Read more about Type labels in Gutenberg. Don't worry if you don't have the required permissions to add labels; the PR reviewer should be able to help with the task.

github-actions[bot] avatar Oct 20 '24 22:10 github-actions[bot]

The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs. You can also manually ask me to refresh this list by adding the props-bot label.

Unlinked Accounts

The following contributors have not linked their GitHub and WordPress.org accounts: @[email protected], @nashvilleccr.

Contributors, please read how to link your accounts to ensure your work is properly credited in WordPress releases.

If you're merging code through a pull request on GitHub, copy and paste the following into the bottom of the merge commit message.

Unlinked contributors: [email protected], nashvilleccr.

Co-authored-by: bgoewert <[email protected]>

To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook.

github-actions[bot] avatar Oct 20 '24 22:10 github-actions[bot]

:wave: Thanks for your first Pull Request and for helping build the future of Gutenberg and WordPress, @bgoewert! In case you missed it, we'd love to have you join us in our Slack community.

If you want to learn more about WordPress development in general, check out the Core Handbook full of helpful information.

github-actions[bot] avatar Oct 20 '24 22:10 github-actions[bot]

The following contributors have not linked their GitHub and WordPress.org accounts: @[email protected].

Unsure what I did wrong. My WP account has been connected for some time. https://profiles.wordpress.org/bgoewert/

bgoewert avatar Oct 20 '24 22:10 bgoewert

This will conflict with #65944. If that PR is merged first I can edit this PR to accommodate.

I also realized that I did not update the readme or changelog, which I am working on now.

bgoewert avatar Oct 25 '24 00:10 bgoewert

@ObliviousHarmony Can you review when you have time? I believe this is ready. Testing with WSL does not copy CA to trusted store. Will test that on Windows and Linux later (but should be okay).

bgoewert avatar May 09 '25 02:05 bgoewert

@ObliviousHarmony or @t-hamano, can someone review when you have time? I was using this in my own projects and ran into an issue. I've just committed a fix for that as well as update the wp-env.json schema with the new properties. Also merged trunk so it should be up to date.

bgoewert avatar Oct 01 '25 17:10 bgoewert