php / php/php-src

The DirName format in a subjectAltName makes parsing difficult

未关闭
#20,312 1 条评论 0 个 reaction 已指派 1 人 在 GitHub 查看

@bukka 已经在做这个了。

开始于 2025年10月27日。

Extension: openssl Feature Status: Verified
主要语言
C
星标
40.4k
派生
8.1k
平均合并
2 天 13 小时
30 天内合并 PR
96

描述

Description

Given a file certificate.crt:

-----BEGIN CERTIFICATE-----
MIIEbzCCA1egAwIBAgIUdeUsBnjgTxURiuUArMHKO9iz0RwwDQYJKoZIhvcNAQEL
BQAwZTELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcM
DVNhbiBGcmFuY2lzY28xEzARBgNVBAoMCk15IENvbXBhbnkxFDASBgNVBAMMC2V4
YW1wbGUuY29tMB4XDTI1MTAyNzE4NTkyN1oXDTI2MTAyNzE4NTkyN1owZTELMAkG
A1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDVNhbiBGcmFu
Y2lzY28xEzARBgNVBAoMCk15IENvbXBhbnkxFDASBgNVBAMMC2V4YW1wbGUuY29t
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu/ojIyYq0/eUPO/iTeKa
/lgeJUkfp9OR+RW9w+3SlVSh+PoxBaXtiJGUHNJ1L+QCAESOgt5PCe3XhZ7sPBZF
hy+6SZYl46x5FwpDoqwo15mjJrgJ+RRrlUsaFGfGFAbucLcHUB7tMqa/drPzRLLb
/1JW94R+Gb9uk/v8x6AYpeL1fjreagYNDGUgRw/5kQ0a84wmJqXBWVSH0yLeDnuu
BvVStxI/omxAnRmttjLCs/WswwJHJC3iMy4ocP8Xe7xhz9m9nOiOYFLGaCZNPjMC
xeylAgVfdtBe099Y6F3maIxZaVCGHKalwHB6dNwD//m0j6q8ylt5eEeSSSEf51mc
SQIDAQABo4IBFTCCAREwge8GA1UdEQSB5zCB5IILZXhhbXBsZS5jb22CD3d3dy5l
eGFtcGxlLmNvbYIVc3ViZG9tYWluLmV4YW1wbGUuY29thwTAqAEBhxAmB/DQEAIA
UQAAAAAAAAAEgRFhZG1pbkBleGFtcGxlLmNvbaQ+MDwxETAPBgNVBAMMCEpvaG4g
RG9lMRowGAYDVQQKDBFFeGFtcGxlIE9yZywgSW5jLjELMAkGA1UEBhMCVVOgIAYJ
KoZIhvcNAQkUoBMMEVVJRF9mcmllbmRseV9uYW1liAMqAwSGG2h0dHA6Ly9leGFt
cGxlLmNvbS9yZXNvdXJjZTAdBgNVHQ4EFgQUBoi/iNuA3Rj8YVxYu8cRWpfm89sw
DQYJKoZIhvcNAQELBQADggEBAJ14oAlPBzG5TcIlVhCHhAlwdrTTledEzAE+3W9u
gSIPZlwnxeDINn8ESJdH1vXzInkjMUWp5HLRHvnubkm+3+TxM62HSZ1wA8bnY0Yy
hb9nwNj4MsNwWzzljT3W9rMiigZOmcTqEz+Ak+QdmxJHxqiuO5ZolC02D5t2H11A
nL2qDlo/Td90KJi4Hn7W43pUGg/EqIcZf+OSsNIRGd+o/BqF7xHtX2peOCPDStWM
Zvd3D90zu0hKS2mXwaNk6wXGgTTd3sO9+1QehwbvHU+ge1aFumNyrnGCD7NbLx+G
Ch43ehA+qBjiykgmbH4fTobYyFMjNsLvWY9Jc5ruKJmPm5M=
-----END CERTIFICATE-----

The following code:

<?php
$cert = file_get_contents("certificate.crt");
print_r( openssl_x509_parse( $cert ) );

Resulted in this output:

...
    [extensions] => Array
        (
            [subjectAltName] => ..., email:admin@example.com, DirName: CN = John Doe, O = "Example Org, Inc.", C = US, othername:<unsupported>, ...
...

Note the comma separators in the DirName entry. This is the same separator used to between SAN types, making the subjectAltName difficult to parse.

If, instead, it used the same notation as Subject Name, parseability would be improved:

..., DirName:/CN=John Doe/O=Example Org\, Inc./C=US, ...
PHP Version
PHP 8.3.6 (cli) (built: Aug 26 2025 13:10:20) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.3.6, Copyright (c) Zend Technologies
    with Zend OPcache v8.3.6, Copyright (c), by Zend Technologies
Operating System

Ubuntu 24.04

贡献指南

打开贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。