@@ -2471,11 +2471,16 @@ added: v15.6.0
2471
2471
2472
2472
<!-- YAML
2473
2473
added: v15.6.0
2474
+ changes:
2475
+ - version: REPLACEME
2476
+ pr-url: https://github.com/nodejs/node/pull/41569
2477
+ description: The subject option can now be set to `'default'`.
2474
2478
-->
2475
2479
2476
2480
* `email` {string}
2477
2481
* `options` {Object}
2478
- * `subject` {string} `'always'` or `'never'`. **Default:** `'always'`.
2482
+ * `subject` {string} `'default'`, `'always'`, or `'never'`.
2483
+ **Default:** `'always'`.
2479
2484
* `wildcards` {boolean} **Default:** `true`.
2480
2485
* `partialWildcards` {boolean} **Default:** `true`.
2481
2486
* `multiLabelWildcards` {boolean} **Default:** `false`.
@@ -2485,15 +2490,31 @@ added: v15.6.0
2485
2490
2486
2491
Checks whether the certificate matches the given email address.
2487
2492
2493
+ If the `'subject'` option is set to `'always'` and if the subject alternative
2494
+ name extension either does not exist or does not contain a matching email
2495
+ address, the certificate subject is considered.
2496
+
2497
+ If the `'subject'` option is set to `'default`', the certificate subject is only
2498
+ considered if the subject alternative name extension either does not exist or
2499
+ does not contain any email addresses.
2500
+
2501
+ If the `'subject'` option is set to `'never'`, the certificate subject is never
2502
+ considered, even if the certificate contains no subject alternative names.
2503
+
2488
2504
### `x509.checkHost(name[, options])`
2489
2505
2490
2506
<!-- YAML
2491
2507
added: v15.6.0
2508
+ changes:
2509
+ - version: REPLACEME
2510
+ pr-url: https://github.com/nodejs/node/pull/41569
2511
+ description: The subject option can now be set to `'default'`.
2492
2512
-->
2493
2513
2494
2514
* `name` {string}
2495
2515
* `options` {Object}
2496
- * `subject` {string} `'always'` or `'never'`. **Default:** `'always'`.
2516
+ * `subject` {string} `'default'`, `'always'`, or `'never'`.
2517
+ **Default:** `'always'`.
2497
2518
* `wildcards` {boolean} **Default:** `true`.
2498
2519
* `partialWildcards` {boolean} **Default:** `true`.
2499
2520
* `multiLabelWildcards` {boolean} **Default:** `false`.
@@ -2509,6 +2530,18 @@ or it might contain wildcards (e.g., `*.example.com`). Because host name
2509
2530
comparisons are case-insensitive, the returned subject name might also differ
2510
2531
from the given `name` in capitalization.
2511
2532
2533
+ If the `'subject'` option is set to `'always'` and if the subject alternative
2534
+ name extension either does not exist or does not contain a matching DNS name,
2535
+ the certificate subject is considered.
2536
+
2537
+ If the `'subject'` option is set to `'default'`, the certificate subject is only
2538
+ considered if the subject alternative name extension either does not exist or
2539
+ does not contain any DNS names. This behavior is consistent with [RFC 2818][]
2540
+ ("HTTP Over TLS").
2541
+
2542
+ If the `'subject'` option is set to `'never'`, the certificate subject is never
2543
+ considered, even if the certificate contains no subject alternative names.
2544
+
2512
2545
### `x509.checkIP(ip[, options])`
2513
2546
2514
2547
<!-- YAML
@@ -5933,6 +5966,7 @@ See the [list of SSL OP Flags][] for details.
5933
5966
[OpenSSL's SPKAC implementation]: https://www.openssl.org/docs/man1.1.0/apps/openssl-spkac.html
5934
5967
[RFC 1421]: https://www.rfc-editor.org/rfc/rfc1421.txt
5935
5968
[RFC 2412]: https://www.rfc-editor.org/rfc/rfc2412.txt
5969
+ [RFC 2818]: https://www.rfc-editor.org/rfc/rfc2818.txt
5936
5970
[RFC 3526]: https://www.rfc-editor.org/rfc/rfc3526.txt
5937
5971
[RFC 3610]: https://www.rfc-editor.org/rfc/rfc3610.txt
5938
5972
[RFC 4055]: https://www.rfc-editor.org/rfc/rfc4055.txt
0 commit comments