mirror of
git://develop.git.wordpress.org/
synced 2025-03-24 05:49:49 +01:00
Security: Introduce Grunt task for updating Root Certificates.
Some checks failed
Cleanup Pull Requests / Clean up pull requests (push) Waiting to run
Coding Standards / PHP coding standards (push) Waiting to run
Coding Standards / JavaScript coding standards (push) Waiting to run
Coding Standards / Slack Notifications (push) Blocked by required conditions
Coding Standards / Failed workflow tasks (push) Blocked by required conditions
End-to-end Tests / Test with SCRIPT_DEBUG disabled (push) Waiting to run
End-to-end Tests / Test with SCRIPT_DEBUG enabled (push) Waiting to run
End-to-end Tests / Slack Notifications (push) Blocked by required conditions
End-to-end Tests / Failed workflow tasks (push) Blocked by required conditions
JavaScript Tests / QUnit Tests (push) Waiting to run
JavaScript Tests / Slack Notifications (push) Blocked by required conditions
JavaScript Tests / Failed workflow tasks (push) Blocked by required conditions
Performance Tests / Single site (push) Waiting to run
Performance Tests / Multisite (push) Waiting to run
Performance Tests / Slack Notifications (push) Blocked by required conditions
Performance Tests / Failed workflow tasks (push) Blocked by required conditions
PHP Compatibility / Check PHP compatibility (push) Waiting to run
PHP Compatibility / Slack Notifications (push) Blocked by required conditions
PHP Compatibility / Failed workflow tasks (push) Blocked by required conditions
PHPUnit Tests / PHP 7.2 (push) Waiting to run
PHPUnit Tests / PHP 7.3 (push) Waiting to run
PHPUnit Tests / PHP 7.4 (push) Waiting to run
PHPUnit Tests / PHP 8.0 (push) Waiting to run
PHPUnit Tests / PHP 8.1 (push) Waiting to run
PHPUnit Tests / PHP 8.2 (push) Waiting to run
PHPUnit Tests / PHP 8.3 (push) Waiting to run
PHPUnit Tests / PHP 8.4 (push) Waiting to run
PHPUnit Tests / html-api-html5lib-tests (push) Waiting to run
PHPUnit Tests / Slack Notifications (push) Blocked by required conditions
PHPUnit Tests / Failed workflow tasks (push) Blocked by required conditions
Test Build Processes / Core running from build (push) Waiting to run
Test Build Processes / Core running from src (push) Waiting to run
Test Build Processes / Gutenberg running from build (push) Waiting to run
Test Build Processes / Gutenberg running from src (push) Waiting to run
Test Build Processes / Slack Notifications (push) Blocked by required conditions
Test Build Processes / Failed workflow tasks (push) Blocked by required conditions
Local Docker Environment / Build Test Matrix (push) Has been cancelled
Local Docker Environment / PHP ${{ matrix.php }} (push) Has been cancelled
Local Docker Environment / Slack Notifications (push) Has been cancelled
Local Docker Environment / Failed workflow tasks (push) Has been cancelled
Some checks failed
Cleanup Pull Requests / Clean up pull requests (push) Waiting to run
Coding Standards / PHP coding standards (push) Waiting to run
Coding Standards / JavaScript coding standards (push) Waiting to run
Coding Standards / Slack Notifications (push) Blocked by required conditions
Coding Standards / Failed workflow tasks (push) Blocked by required conditions
End-to-end Tests / Test with SCRIPT_DEBUG disabled (push) Waiting to run
End-to-end Tests / Test with SCRIPT_DEBUG enabled (push) Waiting to run
End-to-end Tests / Slack Notifications (push) Blocked by required conditions
End-to-end Tests / Failed workflow tasks (push) Blocked by required conditions
JavaScript Tests / QUnit Tests (push) Waiting to run
JavaScript Tests / Slack Notifications (push) Blocked by required conditions
JavaScript Tests / Failed workflow tasks (push) Blocked by required conditions
Performance Tests / Single site (push) Waiting to run
Performance Tests / Multisite (push) Waiting to run
Performance Tests / Slack Notifications (push) Blocked by required conditions
Performance Tests / Failed workflow tasks (push) Blocked by required conditions
PHP Compatibility / Check PHP compatibility (push) Waiting to run
PHP Compatibility / Slack Notifications (push) Blocked by required conditions
PHP Compatibility / Failed workflow tasks (push) Blocked by required conditions
PHPUnit Tests / PHP 7.2 (push) Waiting to run
PHPUnit Tests / PHP 7.3 (push) Waiting to run
PHPUnit Tests / PHP 7.4 (push) Waiting to run
PHPUnit Tests / PHP 8.0 (push) Waiting to run
PHPUnit Tests / PHP 8.1 (push) Waiting to run
PHPUnit Tests / PHP 8.2 (push) Waiting to run
PHPUnit Tests / PHP 8.3 (push) Waiting to run
PHPUnit Tests / PHP 8.4 (push) Waiting to run
PHPUnit Tests / html-api-html5lib-tests (push) Waiting to run
PHPUnit Tests / Slack Notifications (push) Blocked by required conditions
PHPUnit Tests / Failed workflow tasks (push) Blocked by required conditions
Test Build Processes / Core running from build (push) Waiting to run
Test Build Processes / Core running from src (push) Waiting to run
Test Build Processes / Gutenberg running from build (push) Waiting to run
Test Build Processes / Gutenberg running from src (push) Waiting to run
Test Build Processes / Slack Notifications (push) Blocked by required conditions
Test Build Processes / Failed workflow tasks (push) Blocked by required conditions
Local Docker Environment / Build Test Matrix (push) Has been cancelled
Local Docker Environment / PHP ${{ matrix.php }} (push) Has been cancelled
Local Docker Environment / Slack Notifications (push) Has been cancelled
Local Docker Environment / Failed workflow tasks (push) Has been cancelled
The Root Certificate bundle maintained by Mozilla ships in WordPress to allow SSL certificates to be verified on hosts with incomplete, outdated, or invalid local SSL configurations. To date, updates have only been merged into Core when problems arise using a highly manual process. This introduces the `certificates:upgrade` Grunt task to automate the process of updating the included bundle with upstream changes using Composer to manage versioning. The legacy 1024bit certificates included for backwards compatibility are now maintained in a separate file that is prepended to the built version of the bundle during the relevant Grunt tasks. Some expired certificates from this list have been removed: - Cybertrust Global Root (expired 2021-12-15) - Thawte Server CA (expired 2020-12-31) - Thawte Premium Server CA (expired 2020-12-31) The Dependabot configuration has also been updated to open pull requests when new releases occur upstream. Going forward, the recommendation is to create a task ticket for updating these certificates with each release when an update is published. See #62811 for an example of this. Props johnbillion, desrosj, whyisjake, ayeshrajans, SergeyBiryukov, swissspidy, skithund, barry. Fixes #62812. See #62811, 50828. git-svn-id: https://develop.svn.wordpress.org/trunk@59740 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
parent
439b172d92
commit
6db1a33402
17
.github/dependabot.yml
vendored
17
.github/dependabot.yml
vendored
@ -12,3 +12,20 @@ updates:
|
||||
github-actions:
|
||||
patterns:
|
||||
- "*"
|
||||
|
||||
# Check for updates to Composer packages.
|
||||
- package-ecosystem: "composer"
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
open-pull-requests-limit: 10
|
||||
ignore:
|
||||
# These dependencies do not currently need to be managed with Dependabot.
|
||||
- dependency-name: "squizlabs/php_codesniffer"
|
||||
- dependency-name: "wp-coding-standards/wpcs"
|
||||
- dependency-name: "phpcompatibility/php-compatibility"
|
||||
- dependency-name: "yoast/phpunit-polyfills"
|
||||
groups:
|
||||
composer-packages:
|
||||
patterns:
|
||||
- "composer/ca-bundle"
|
||||
|
46
Gruntfile.js
46
Gruntfile.js
@ -211,6 +211,8 @@ module.exports = function(grunt) {
|
||||
src: buildFiles.concat( [
|
||||
'!wp-includes/assets/**', // Assets is extracted into separate copy tasks.
|
||||
'!js/**', // JavaScript is extracted into separate copy tasks.
|
||||
'!wp-includes/certificates/cacert.pem*', // Exclude raw root certificate files that are combined into ca-bundle.crt.
|
||||
'!wp-includes/certificates/legacy-1024bit.pem',
|
||||
'!.{svn,git}', // Exclude version control folders.
|
||||
'!wp-includes/version.php', // Exclude version.php.
|
||||
'!**/*.map', // The build doesn't need .map files.
|
||||
@ -478,6 +480,10 @@ module.exports = function(grunt) {
|
||||
},
|
||||
src: '.github/workflows/*.yml',
|
||||
dest: './'
|
||||
},
|
||||
certificates: {
|
||||
src: 'vendor/composer/ca-bundle/res/cacert.pem',
|
||||
dest: SOURCE_DIR + 'wp-includes/certificates/cacert.pem'
|
||||
}
|
||||
},
|
||||
sass: {
|
||||
@ -859,6 +865,16 @@ module.exports = function(grunt) {
|
||||
WORKING_DIR + 'wp-includes/js/wp-emoji.min.js'
|
||||
],
|
||||
dest: WORKING_DIR + 'wp-includes/js/wp-emoji-release.min.js'
|
||||
},
|
||||
certificates: {
|
||||
options: {
|
||||
separator: '\n\n'
|
||||
},
|
||||
src: [
|
||||
SOURCE_DIR + 'wp-includes/certificates/legacy-1024bit.pem',
|
||||
SOURCE_DIR + 'wp-includes/certificates/cacert.pem'
|
||||
],
|
||||
dest: SOURCE_DIR + 'wp-includes/certificates/ca-bundle.crt'
|
||||
}
|
||||
},
|
||||
patch:{
|
||||
@ -1528,6 +1544,34 @@ module.exports = function(grunt) {
|
||||
'usebanner'
|
||||
] );
|
||||
|
||||
grunt.registerTask( 'certificates:update', 'Updates the Composer package responsible for root certificate updates.', function() {
|
||||
var done = this.async();
|
||||
var flags = this.flags;
|
||||
var args = [ 'update' ];
|
||||
|
||||
grunt.util.spawn( {
|
||||
cmd: 'composer',
|
||||
args: args,
|
||||
opts: { stdio: 'inherit' }
|
||||
}, function( error ) {
|
||||
if ( flags.error && error ) {
|
||||
done( false );
|
||||
} else {
|
||||
done( true );
|
||||
}
|
||||
} );
|
||||
} );
|
||||
|
||||
grunt.registerTask( 'build:certificates', [
|
||||
'concat:certificates'
|
||||
] );
|
||||
|
||||
grunt.registerTask( 'certificates:upgrade', [
|
||||
'certificates:update',
|
||||
'copy:certificates',
|
||||
'build:certificates'
|
||||
] );
|
||||
|
||||
grunt.registerTask( 'build:files', [
|
||||
'clean:files',
|
||||
'copy:files',
|
||||
@ -1655,9 +1699,11 @@ module.exports = function(grunt) {
|
||||
grunt.task.run( [
|
||||
'build:js',
|
||||
'build:css',
|
||||
'build:certificates'
|
||||
] );
|
||||
} else {
|
||||
grunt.task.run( [
|
||||
'build:certificates',
|
||||
'build:files',
|
||||
'build:js',
|
||||
'build:css',
|
||||
|
@ -17,6 +17,7 @@
|
||||
"ext-dom": "*"
|
||||
},
|
||||
"require-dev": {
|
||||
"composer/ca-bundle": "1.5.5",
|
||||
"squizlabs/php_codesniffer": "3.10.3",
|
||||
"wp-coding-standards/wpcs": "~3.1.0",
|
||||
"phpcompatibility/phpcompatibility-wp": "~2.1.3",
|
||||
|
File diff suppressed because it is too large
Load Diff
3611
src/wp-includes/certificates/cacert.pem
Normal file
3611
src/wp-includes/certificates/cacert.pem
Normal file
File diff suppressed because it is too large
Load Diff
58
src/wp-includes/certificates/legacy-1024bit.pem
Normal file
58
src/wp-includes/certificates/legacy-1024bit.pem
Normal file
@ -0,0 +1,58 @@
|
||||
##
|
||||
## Bundle of CA Root Certificates
|
||||
##
|
||||
## WordPress Modification - We prepend some unexpired 'legacy' 1024bit certificates
|
||||
## for backward compatibility. See https://core.trac.wordpress.org/ticket/34935#comment:10
|
||||
##
|
||||
|
||||
|
||||
Verisign Class 3 Public Primary Certification Authority
|
||||
=======================================================
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIICPDCCAaUCEHC65B0Q2Sk0tjjKewPMur8wDQYJKoZIhvcNAQECBQAwXzELMAkGA1UEBhMCVVMx
|
||||
FzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAzIFB1YmxpYyBQcmltYXJ5
|
||||
IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2MDEyOTAwMDAwMFoXDTI4MDgwMTIzNTk1OVow
|
||||
XzELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAz
|
||||
IFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUA
|
||||
A4GNADCBiQKBgQDJXFme8huKARS0EN8EQNvjV69qRUCPhAwL0TPZ2RHP7gJYHyX3KqhEBarsAx94
|
||||
f56TuZoAqiN91qyFomNFx3InzPRMxnVx0jnvT0Lwdd8KkMaOIG+YD/isI19wKTakyYbnsZogy1Ol
|
||||
hec9vn2a/iRFM9x2Fe0PonFkTGUugWhFpwIDAQABMA0GCSqGSIb3DQEBAgUAA4GBALtMEivPLCYA
|
||||
TxQT3ab7/AoRhIzzKBxnki98tsX63/Dolbwdj2wsqFHMc9ikwFPwTtYmwHYBV4GSXiHx0bH/59Ah
|
||||
WM1pF+NEHJwZRDmJXNycAA9WjQKZ7aKQRUzkuxCkPfAyAw7xzvjoyVGM5mKf5p/AfbdynMk2Omuf
|
||||
Tqj/ZA1k
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
Verisign Class 3 Public Primary Certification Authority - G2
|
||||
============================================================
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDAjCCAmsCEH3Z/gfPqB63EHln+6eJNMYwDQYJKoZIhvcNAQEFBQAwgcExCzAJBgNVBAYTAlVT
|
||||
MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMyBQdWJsaWMgUHJpbWFy
|
||||
eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2ln
|
||||
biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz
|
||||
dCBOZXR3b3JrMB4XDTk4MDUxODAwMDAwMFoXDTI4MDgwMTIzNTk1OVowgcExCzAJBgNVBAYTAlVT
|
||||
MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMyBQdWJsaWMgUHJpbWFy
|
||||
eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2ln
|
||||
biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz
|
||||
dCBOZXR3b3JrMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDMXtERXVxp0KvTuWpMmR9ZmDCO
|
||||
FoUgRm1HP9SFIIThbbP4pO0M8RcPO/mn+SXXwc+EY/J8Y8+iR/LGWzOOZEAEaMGAuWQcRXfH2G71
|
||||
lSk8UOg013gfqLptQ5GVj0VXXn7F+8qkBOvqlzdUMG+7AUcyM83cV5tkaWH4mx0ciU9cZwIDAQAB
|
||||
MA0GCSqGSIb3DQEBBQUAA4GBAFFNzb5cy5gZnBWyATl4Lk0PZ3BwmcYQWpSkU01UbSuvDV1Ai2TT
|
||||
1+7eVmGSX6bEHRBhNtMsJzzoKQm5EWR0zLVznxxIqbxhAe7iF6YM40AIOw7n60RzKprxaZLvcRTD
|
||||
Oaxxp5EJb+RxBrO6WVcmeQD2+A2iMzAo1KpYoJ2daZH9
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
Verisign Class 3 Public Primary Certification Authority
|
||||
=======================================================
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIICPDCCAaUCEDyRMcsf9tAbDpq40ES/Er4wDQYJKoZIhvcNAQEFBQAwXzELMAkGA1UEBhMCVVMx
|
||||
FzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAzIFB1YmxpYyBQcmltYXJ5
|
||||
IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2MDEyOTAwMDAwMFoXDTI4MDgwMjIzNTk1OVow
|
||||
XzELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAz
|
||||
IFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUA
|
||||
A4GNADCBiQKBgQDJXFme8huKARS0EN8EQNvjV69qRUCPhAwL0TPZ2RHP7gJYHyX3KqhEBarsAx94
|
||||
f56TuZoAqiN91qyFomNFx3InzPRMxnVx0jnvT0Lwdd8KkMaOIG+YD/isI19wKTakyYbnsZogy1Ol
|
||||
hec9vn2a/iRFM9x2Fe0PonFkTGUugWhFpwIDAQABMA0GCSqGSIb3DQEBBQUAA4GBABByUqkFFBky
|
||||
CEHwxWsKzH4PIRnN5GfcX6kb5sroc50i2JhucwNhkcV8sEVAbkSdjbCxlnRhLQ2pRdKkkirWmnWX
|
||||
bj9T/UWZYB2oK0z5XqcJ2HUw19JlYD1n1khVdWk/kfVIC0dpImmClr7JyDiGSnoscxlIaU5rfGW/
|
||||
D/xwzoiQ
|
||||
-----END CERTIFICATE-----
|
Loading…
x
Reference in New Issue
Block a user