Skip to content

wp-env https support 8211#66264

Open
bgoewert wants to merge 14 commits intoWordPress:trunkfrom
bgoewert:wp-env/https-support-8211
Open

wp-env https support 8211#66264
bgoewert wants to merge 14 commits intoWordPress:trunkfrom
bgoewert:wp-env/https-support-8211

Conversation

@bgoewert
Copy link

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.

@github-actions
Copy link

github-actions bot commented Oct 20, 2024

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
Copy link

github-actions bot commented Oct 20, 2024

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: @bgoewert@goewert.me, @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: bgoewert@goewert.me, nashvilleccr.

Co-authored-by: bgoewert <bgoewert@git.wordpress.org>

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

@github-actions github-actions bot added the First-time Contributor Pull request opened by a first-time contributor to Gutenberg repository label Oct 20, 2024
@github-actions
Copy link

👋 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.

@bgoewert
Copy link
Author

The following contributors have not linked their GitHub and WordPress.org accounts: @bgoewert@goewert.me.

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

@bgoewert
Copy link
Author

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.

@skorasaurus skorasaurus added the [Tool] Env /packages/env label Nov 12, 2024
@bgoewert
Copy link
Author

bgoewert commented May 9, 2025

@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-seiler and others added 4 commits July 31, 2025 20:13
# Conflicts:
#	packages/env/CHANGELOG.md
- Only expose HTTPS ports (443) on containers when config.https is enabled
- Fix bug where testsHttpsPort was overridden by httpsPort
- Add missing HTTPS properties to wp-env.json schema
- Ensure tests environment uses 8443 while development uses 443

Fixes port allocation errors when running wp-env with HTTPS enabled.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
@bgoewert
Copy link
Author

bgoewert commented Oct 1, 2025

@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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

First-time Contributor Pull request opened by a first-time contributor to Gutenberg repository [Tool] Env /packages/env

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants