Skip to content

Commit 873eaa2

Browse files
Merge pull request #225996 from KennedyDMSFT/US61351
X.509: Move certificate field info to reference section
2 parents 466720f + 01a3326 commit 873eaa2

6 files changed

+131
-123
lines changed

articles/iot-hub/.openpublishing.redirection.iot-hub.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1107,6 +1107,11 @@
11071107
"source_path_from_root": "/articles/iot-hub/iot-hub-weather-forecast-machine-learning.md",
11081108
"redirect_url": "/azure/iot-hub/iot-concepts-and-iot-hub",
11091109
"redirect_document_id": false
1110+
},
1111+
{
1112+
"source_path_from_root": "/articles/iot-hub/tutorial-x509-certificates.md",
1113+
"redirect_url": "/azure/iot-hub/reference-x509-certificates",
1114+
"redirect_document_id": true
11101115
}
11111116
]
11121117
}

articles/iot-hub/TOC.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -225,9 +225,6 @@
225225
- name: X.509 certificate concepts
226226
displayName: Public Key Cryptography, X.509 certificates, public key infrastructure (PKI), certificates, Certification Authorities, encryption, ciphertext
227227
href: iot-hub-x509-certificate-concepts.md
228-
- name: Certificate fields
229-
displayName: certification authority (CA), subordinate CA, certificate versions, unique identifier, key identifier, binary certificate, PEM certificate, PKCS
230-
href: tutorial-x509-certificates.md
231228
- name: X.509 CA certificate security concepts
232229
displayName: Device Provisioning Service, DPS, Hardware Secure Modules, HSM, self-signed certificate, Public Key Infrastructure, PKI
233230
href: iot-hub-x509ca-concept.md
@@ -567,6 +564,9 @@
567564
href: /azure/templates/microsoft.devices/iothub-allversions
568565
- name: Azure Policy built-ins
569566
href: ./policy-reference.md
567+
- name: X.509 certificates
568+
displayName: certification authority (CA), subordinate CA, certificate versions, unique identifier, key identifier, binary certificate, PEM certificate, PKCS
569+
href: reference-x509-certificates.md
570570
- name: Feature and API retirement
571571
items:
572572
- name: TLS 1.0 and 1.1 deprecation

articles/iot-hub/iot-hub-x509-certificate-concepts.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ Digital signing can be used to determine whether the data has been modified in t
117117

118118
## Next steps
119119

120-
To learn more about the fields that make up an X.509 certificate, see [Understand X.509 public key certificates](tutorial-x509-certificates.md).
120+
To learn more about the fields that make up an X.509 certificate, see [X.509 certificates](reference-x509-certificates.md).
121121

122122
If you're already familiar with X.509 certificates, and you want to generate test versions that you can use to authenticate to your IoT hub, see the following articles:
123123

Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,120 @@
1+
---
2+
title: X.509 certificates | Microsoft Docs
3+
description: Reference documentation containing information about X.509 certificates, including certificate fields, certificate extensions, and certificate formats.
4+
author: kgremban
5+
6+
ms.service: iot-hub
7+
services: iot-hub
8+
ms.topic: reference
9+
ms.date: 02/03/2022
10+
ms.author: kgremban
11+
ms.custom: [mvc, 'Role: Cloud Development', 'Role: Data Analytics']
12+
#Customer intent: As a developer, I want to be able to use X.509 certificates to authenticate devices to an IoT hub, and I need to know what file formats, fields, and other details are supported by Azure IoT Hub.
13+
---
14+
15+
# X.509 certificates
16+
17+
X.509 certificates are digital documents that represent a user, computer, service, or device. They're issued by a certification authority (CA), subordinate CA, or registration authority and contain the public key of the certificate subject. They don't contain the subject's private key, which must be stored securely. Public key certificates are documented by [RFC 5280](https://tools.ietf.org/html/rfc5280). They're digitally signed and, in general, contain the following information:
18+
19+
* Information about the certificate subject
20+
* The public key that corresponds to the subject's private key
21+
* Information about the issuing CA
22+
* The supported encryption and/or digital signing algorithms
23+
* Information to determine the revocation and validity status of the certificate
24+
25+
## Certificate fields
26+
27+
There are three incremental versions of the X.509 certificate standard, and each subsequent version added certificate fields to the standard:
28+
29+
* Version 1 (v1), published in 1988, follows the initial X.509 standard for certificates.
30+
* Version 2 (v2), published in 1993, adds two fields to the fields included in Version 1.
31+
* Version 3 (v3), published in 2008, represents the current version of the X.509 standard. This version adds support for certificate extensions.
32+
33+
This section is meant as a general reference for the certificate fields and certificate extensions available in X.509 certificates. For more information about certificate fields and certificate extensions, including data types, constraints, and other details, see the [RFC 5280](https://tools.ietf.org/html/rfc5280) specification.
34+
35+
### Version 1 fields
36+
37+
The following table describes Version 1 certificate fields for X.509 certificates. All of the fields included in this table are available in subsequent X.509 certificate versions.
38+
39+
| Name | Description |
40+
| --- | --- |
41+
| [Version](https://www.rfc-editor.org/rfc/rfc5280#section-4.1.2.1) | An integer that identifies the version number of the certificate.|
42+
| [Serial Number](https://www.rfc-editor.org/rfc/rfc5280#section-4.1.2.2) | An integer that represents the unique number for each certificate issued by a certificate authority (CA). |
43+
| [Signature](https://www.rfc-editor.org/rfc/rfc5280#section-4.1.2.3) | The identifier for the cryptographic algorithm used by the CA to sign the certificate. The value includes both the identifier of the algorithm and any optional parameters used by that algorithm, if applicable. |
44+
| [Issuer](https://www.rfc-editor.org/rfc/rfc5280#section-4.1.2.4) | The distinguished name (DN) of the certificate's issuing CA. |
45+
| [Validity](https://www.rfc-editor.org/rfc/rfc5280#section-4.1.2.5) | The inclusive time period for which the certificate is considered valid. |
46+
| [Subject](https://www.rfc-editor.org/rfc/rfc5280#section-4.1.2.6) | The distinguished name (DN) of the certificate subject. |
47+
| [Subject Public Key Info](https://www.rfc-editor.org/rfc/rfc5280#section-4.1.2.7) | The public key owned by the certificate subject. |
48+
49+
### Version 2 fields
50+
51+
The following table describes the fields added for Version 2, containing information about the certificate issuer. These fields are, however, rarely used. All of the fields included in this table are available in subsequent X.509 certificate versions.
52+
53+
| Name | Description |
54+
| --- | --- |
55+
| [Issuer Unique ID](https://www.rfc-editor.org/rfc/rfc5280#section-4.1.2.8) | A unique identifier that represents the issuing CA, as defined by the issuing CA. |
56+
| [Subject Unique ID](https://www.rfc-editor.org/rfc/rfc5280#section-4.1.2.8) | A unique identifier that represents the certificate subject, as defined by the issuing CA. |
57+
58+
### Version 3 fields
59+
60+
The following table describes the field added for Version 3, representing a collection of X.509 certificate extensions.
61+
62+
| Name | Description |
63+
| --- | --- |
64+
| [Extensions](https://www.rfc-editor.org/rfc/rfc5280#section-4.1.2.9) | A collection of standard and Internet-specific certificate extensions. For more information about the certificate extensions available to X.509 v3 certificates, see [Certificate extensions](#certificate-extensions). |
65+
66+
## Certificate extensions
67+
68+
Certificate extensions, introduced with Version 3, provide methods for associating more attributes with users or public keys and for managing relationships between certificate authorities. For more information about certificate extensions, see the [Certificate Extensions](https://www.rfc-editor.org/rfc/rfc5280#section-4.2) section of the [RFC 5280](https://tools.ietf.org/html/rfc5280) specification.
69+
70+
### Standard extensions
71+
72+
The extensions included in this section are defined as part of the X.509 standard, for use in the Internet public key infrastructure (PKI).
73+
74+
| Name | Description |
75+
| --- | --- |
76+
| [Authority Key Identifier](https://www.rfc-editor.org/rfc/rfc5280#section-4.2.1.1) | An identifier that represents either the certificate subject and the serial number of the CA certificate that issued this certificate, or a hash of the public key of the issuing CA. |
77+
| [Subject Key Identifier](https://www.rfc-editor.org/rfc/rfc5280#section-4.2.1.2) | A hash of the current certificate's public key. |
78+
| [Key Usage](https://www.rfc-editor.org/rfc/rfc5280#section-4.2.1.3) | A bitmapped value that defines the services for which a certificate can be used. |
79+
| [Private Key Usage Period](https://www.rfc-editor.org/rfc/rfc5280#section-4.2.1.3) | The validity period for the private key portion of a key pair. |
80+
| [Certificate Policies](https://www.rfc-editor.org/rfc/rfc5280#section-4.2.1.4) | A collection of policy information, used to validate the certificate subject. |
81+
| [Policy Mappings](https://www.rfc-editor.org/rfc/rfc5280#section-4.2.1.5) | A collection of policy mappings, each of which maps a policy in one organization to policy in another organization. |
82+
| [Subject Alternative Name](https://www.rfc-editor.org/rfc/rfc5280#section-4.2.1.6) | A collection of alternate names for the subject. |
83+
| [Issuer Alternative Name](https://www.rfc-editor.org/rfc/rfc5280#section-4.2.1.7) | A collection of alternate names for the issuing CA. |
84+
| [Subject Directory Attributes](https://www.rfc-editor.org/rfc/rfc5280#section-4.2.1.8) | A collection of attributes from an X.500 or LDAP directory. |
85+
| [Basic Constraints](https://www.rfc-editor.org/rfc/rfc5280#section-4.2.1.9) | A collection of constraints that allow the certificate to designate whether it's issued to a CA, or to a user, computer, device, or service. This extension also includes a path length constraint that limits the number of subordinate CAs that can exist. |
86+
| [Name Constraints](https://www.rfc-editor.org/rfc/rfc5280#section-4.2.1.10) | A collection of constraints that designate which namespaces are allowed in a CA-issued certificate. |
87+
| [Policy Constraints](https://www.rfc-editor.org/rfc/rfc5280#section-4.2.1.11) | A collection of constraints that can be used to prohibit policy mappings between CAs. |
88+
| [Extended Key Usage](https://www.rfc-editor.org/rfc/rfc5280#section-4.2.1.12) | A collection of key purpose values that indicate how a certificate's public key can be used, beyond the purposes identified in the **Key Usage** extension. |
89+
| [CRL Distribution Points](https://www.rfc-editor.org/rfc/rfc5280#section-4.2.1.13) | A collection of URLs where the base certificate revocation list (CRL) is published. |
90+
| [Inhibit anyPolicy](https://www.rfc-editor.org/rfc/rfc5280#section-4.2.1.14) | Inhibits the use of the **All Issuance Policies** OID (2.5.29.32.0) in subordinate CA certificates
91+
| [Freshest CRL](https://www.rfc-editor.org/rfc/rfc5280#section-4.2.1.15) | This extension, also known as the **Delta CRL Distribution Point**, contains one or more URLs where the issuing CA's delta CRL is published. |
92+
93+
### Private Internet extensions
94+
95+
The extensions included in this section are similar to standard extensions, and may be used to direct applications to online information about the issuing CA or certificate subject.
96+
97+
| Name | Description |
98+
| --- | --- |
99+
| [Authority Information Access](https://www.rfc-editor.org/rfc/rfc5280#section-4.2.2.1) | A collection of entries that describe the format and location of additional information provided by the issuing CA. |
100+
| [Subject Information Access](https://www.rfc-editor.org/rfc/rfc5280#section-4.2.2.2) | A collection of entries that describe the format and location of additional information provided by the certificate subject. |
101+
102+
## Certificate formats
103+
104+
Certificates can be saved in various formats. Azure IoT Hub authentication typically uses the Privacy-Enhanced Mail (PEM) and Personal Information Exchange (PFX) formats. The following table describes commonly used files and formats used to represent certificates.
105+
106+
| Format | Description |
107+
| --- | --- |
108+
| Binary certificate | A raw form binary certificate using Distinguished Encoding Rules (DER) ASN.1 encoding. |
109+
| ASCII PEM format | A PEM certificate (.pem) file contains a Base64-encoded certificate beginning with `-----BEGIN CERTIFICATE-----` and ending with `-----END CERTIFICATE-----`. One of the most common formats for X.509 certificates, PEM format is required by IoT Hub when uploading certain certificates, such as device certificates. |
110+
| ASCII PEM key | Contains a Base64-encoded DER key, optionally with more metadata about the algorithm used for password protection. |
111+
| PKCS #7 certificate | A format designed for the transport of signed or encrypted data. It can include the entire certificate chain. It's defined by [RFC 2315](https://tools.ietf.org/html/rfc2315). |
112+
| PKCS #8 key | The format for a private key store. It's defined by [RFC 5208](https://tools.ietf.org/html/rfc5208). |
113+
| PKCS #12 key and certificate | A complex format that can store and protect a key and the entire certificate chain. It's commonly used with a .p12 or .pfx extension. PKCS #12 is synonymous with the PFX format. It's defined by [RFC 7292](https://tools.ietf.org/html/rfc7292). |
114+
115+
## For more information
116+
117+
For more information about X.509 certificates and how they're used in IoT Hub, see the following articles:
118+
119+
* [The layman’s guide to X.509 certificate jargon](https://techcommunity.microsoft.com/t5/internet-of-things/the-layman-s-guide-to-x-509-certificate-jargon/ba-p/2203540)
120+
* [Understand how X.509 CA certificates are used in IoT](./iot-hub-x509ca-concept.md)

0 commit comments

Comments
 (0)