Что подразумевается под «Назначением» и его значением при проверке Сертификата? - PullRequest
1 голос
/ 20 июля 2011

Может кто-нибудь сказать мне, для чего используются значения «Назначение» при проверке сертификатов и что они значат?

1 Ответ

3 голосов
/ 20 июля 2011

Чтобы узнать, что они означают, взгляните на раздел Сертификаты на справочной странице OpenSSL x509.

Вот как они связаны скод (взят из v3_purp.c):

static X509_PURPOSE xstandard[] = {
{X509_PURPOSE_SSL_CLIENT, X509_TRUST_SSL_CLIENT, 0, check_purpose_ssl_client, "SSL client", "sslclient", NULL},
{X509_PURPOSE_SSL_SERVER, X509_TRUST_SSL_SERVER, 0, check_purpose_ssl_server, "SSL server", "sslserver", NULL},
{X509_PURPOSE_NS_SSL_SERVER, X509_TRUST_SSL_SERVER, 0, check_purpose_ns_ssl_server, "Netscape SSL server", "nssslserver", NULL},
{X509_PURPOSE_SMIME_SIGN, X509_TRUST_EMAIL, 0, check_purpose_smime_sign, "S/MIME signing", "smimesign", NULL},
{X509_PURPOSE_SMIME_ENCRYPT, X509_TRUST_EMAIL, 0, check_purpose_smime_encrypt, "S/MIME encryption", "smimeencrypt", NULL},
{X509_PURPOSE_CRL_SIGN, X509_TRUST_COMPAT, 0, check_purpose_crl_sign, "CRL signing", "crlsign", NULL},
{X509_PURPOSE_ANY, X509_TRUST_DEFAULT, 0, no_check, "Any Purpose", "any", NULL},
{X509_PURPOSE_OCSP_HELPER, X509_TRUST_COMPAT, 0, ocsp_helper, "OCSP helper", "ocsphelper", NULL},
{X509_PURPOSE_TIMESTAMP_SIGN, X509_TRUST_TSA, 0, check_purpose_timestamp_sign, "Time Stamp signing", "timestampsign", NULL},
};

При программной проверке цели обычно приходится иметь дело только с целочисленными константами, такими как X509_PURPOSE_SSL_SERVER.Эти цели используются во время проверки сертификата.Сертификат (путь) проверяется, и, наконец, OpenSSL проверяет, содержит ли данный сертификат расширение ExtendedKeyUsage, которое содержит запрошенные «цели».Если этого не произойдет, сертификат будет отклонен.

OpenSSL применяет разумные значения по умолчанию, где это возможно, но если у вас есть особые требования, вы можете добавить свои собственные цели для проверки во время проверки сертификата.При желании можно также проверить пользовательские ExtendedKeyUsage s, но обычно достаточно предопределенных значений по умолчанию.

...