Skip to content

Commit 257b07a

Browse files
committed
Fixed broken link, added minor Acrolinx fixes to improve score
1 parent 5746f9f commit 257b07a

File tree

2 files changed

+19
-19
lines changed

2 files changed

+19
-19
lines changed

articles/iot-hub/iot-hub-x509ca-overview.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ The upload process entails uploading a file that contains your certificate. Thi
5555

5656
The proof of possession step involves a cryptographic challenge and response process between you and IoT Hub. Given that digital certificate contents are public and therefore susceptible to eavesdropping, IoT Hub has to verify that you really own the CA certificate. You can choose to either automatically or manually verify ownership. For manual verification, Azure IoT Hub generates a random challenge that you sign with the CA certificate's corresponding private key. If you kept the private key secret and protected as recommended, then only you possess the knowledge to complete this step. Secrecy of private keys is the source of trust in this method. After signing the challenge, you complete this step and manually verify your certificate by uploading a file containing the results.
5757

58-
Learn how to [register your CA certificate](tutorial-x509-test-ca-certs.md#upload-and-verify-your-subordinate-ca-certificate)
58+
Learn how to [register your CA certificate](tutorial-x509-test-ca-certs.md#register-your-subordinate-ca-certificate-to-your-iot-hub).
5959

6060
## Create a device on IoT Hub
6161

articles/iot-hub/tutorial-x509-test-ca-certs.md

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@ ms.custom: [mvc, 'Role: Cloud Development', 'Role: Data Analytics']
1414

1515
# Tutorial: Create and upload certificates for testing
1616

17-
For production environments, we recommend that you purchase an X.509 CA certificate from a professional certificate services vendor and issue certificates within your organization from an internal, self-managed certificate authority (CA) chained to the external root CA as part of a comprehensive public key infrastructure (PKI) strategy. For more information about getting an X.509 CA certificate from a professional certificate services vendor, see the [Get an X.509 CA certificate](iot-hub-x509ca-overview.md#get-an-x509-ca-certificate) section of [Authenticate devices using X.509 CA certificates](iot-hub-x509ca-overview.md).
17+
For production environments, we recommend that you purchase an X.509 CA certificate from a professional certificate services vendor. You can then issue certificates within your organization from an internal, self-managed certificate authority (CA) chained to the purchased CA certificate as part of a comprehensive public key infrastructure (PKI) strategy. For more information about getting an X.509 CA certificate from a professional certificate services vendor, see the [Get an X.509 CA certificate](iot-hub-x509ca-overview.md#get-an-x509-ca-certificate) section of [Authenticate devices using X.509 CA certificates](iot-hub-x509ca-overview.md).
1818

19-
However, creating your own self-managed, private CA that uses an internal root CA as the trust anchor is adequate for testing environments. Using a self-managed private CA with at least one subordinate CA chained to your internal root CA, and client certificates for your devices signed by your subordinate CAs, allows you to more closely simulate a recommended production environment.
19+
However, creating your own self-managed, private CA that uses an internal root CA as the trust anchor is adequate for testing environments. A self-managed private CA with at least one subordinate CA chained to your internal root CA and client certificates for your devices signed by your subordinate CAs allows you to more closely simulate a recommended production environment.
2020

2121
>[!NOTE]
2222
>We do not recommend the use of self-signed certificates for production environments. This tutorial is presented for demonstration purposes only.
@@ -58,7 +58,7 @@ You must first create an internal root certificate authority (CA) and a self-sig
5858
| rootca | The root directory of the root CA. |
5959
| rootca/certs | The directory in which CA certificates for the root CA are created and stored. |
6060
| rootca/db | The directory in which the certificate database and support files for the root CA are stored. |
61-
| rootca/db/index | The certificate database for the root CA. The `touch` command creates a file without any content, for later use. The certificate database is a plain text file managed by OpenSSL that contains certificate information. For more information about the certificate database, see .|
61+
| rootca/db/index | The certificate database for the root CA. The `touch` command creates a file without any content, for later use. The certificate database is a plain text file managed by OpenSSL that contains information about issued certificates. For more information about the certificate database, see the [openssl-ca](https://www.openssl.org/docs/man3.1/man1/openssl-ca.html) manual page in [OpenSSL documentation](https://www.openssl.org/docs/). |
6262
| rootca/db/serial | A file used to store the serial number of the next certificate to be created for the root CA. The `openssl` command creates a 16-byte random number in hexadecimal format, then stores it in this file to initialize the file for creating the root CA certificate. |
6363
| rootca/db/crlnumber | A file used to store serial numbers for revoked certificates issued by the root CA. The `echo` command pipes a sample serial number, 1001, into the file. |
6464
| rootca/private | The directory in which private files for the root CA, including the private key, are stored.<br/><br/>The files in this directory must be secured and protected. |
@@ -81,11 +81,11 @@ You must first create an internal root certificate authority (CA) and a self-sig
8181
| {rootca_common_name} | The common name of the root CA. For example, `Test Root CA`. |
8282

8383
The file provides OpenSSL with the values needed to configure your test root CA. For this example, the file configures a root CA using the directories and files created in previous steps. The file also provides configuration settings for:
84+
8485
- The CA policy used by the root CA for certificate Distinguished Name (DN) fields
8586
- Certificate requests created by the root CA
8687
- X.509 extensions applied to root CA certificates, subordinate CA certificates, and client certificates issued by the root CA
87-
The root CA certificate generated from this configuration file is valid for 3650 days,
88-
88+
8989
For more information about the syntax of OpenSSL configuration files, see the [config](https://www.openssl.org/docs/manmaster/man5/config.html) master manual page in [OpenSSL documentation](https://www.openssl.org/docs/).
9090

9191
```bash
@@ -163,23 +163,23 @@ You must first create an internal root certificate authority (CA) and a self-sig
163163
openssl req -new -config rootca.conf -out rootca.csr -keyout private/rootca.key
164164
```
165165
166-
You are prompted to provide a PEM pass phrase, as shown below, for the private key file. Provide and confirm a pass phrase to generate your private key and CSR.
166+
You're prompted to provide a PEM pass phrase, as shown below, for the private key file. Provide and confirm a pass phrase to generate your private key and CSR.
167167

168168
```bash
169169
Enter PEM pass phrase:
170170
Verifying - Enter PEM pass phrase:
171171
-----
172172
```
173173

174-
Confirm that the CSR file, *rootca.csr*, is present in the in the *rootca* directory and the private key file, *rootca.key*, is present in the *rootca/private* directory before continuing. For more information about the formats of the CSR and private key files, see [X.509 certificates](reference-x509-certificates.md#certificate-formats).
174+
Confirm that the CSR file, *rootca.csr*, is present in the *rootca* directory and the private key file, *rootca.key*, is present in the *rootca/private* directory before continuing. For more information about the formats of the CSR and private key files, see [X.509 certificates](reference-x509-certificates.md#certificate-formats).
175175

176176
1. In the Bash window, run the following command to create a self-signed root CA certificate. The command applies the `ca_ext` configuration file extensions to the certificate. These extensions indicate that the certificate is for a root CA and can be used to sign certificates and certificate revocation lists (CRLs). For more information about the OpenSSL `ca` command, see the [openssl-ca](https://www.openssl.org/docs/man3.1/man1/openssl-ca.html) manual page in [OpenSSL documentation](https://www.openssl.org/docs/).
177177

178178
```bash
179179
openssl ca -selfsign -config rootca.conf -in rootca.csr -out rootca.crt -extensions ca_ext
180180
```
181181

182-
You are prompted to provide the PEM pass phrase, as shown below, for the private key file. After providing the pass phrase, OpenSSL generates a certificate, then prompts you to sign and commit the certificate for your root CA. Specify *y* for both prompts to generate the self-signed certificate for your root CA.
182+
You're prompted to provide the PEM pass phrase, as shown below, for the private key file. After providing the pass phrase, OpenSSL generates a certificate, then prompts you to sign and commit the certificate for your root CA. Specify *y* for both prompts to generate the self-signed certificate for your root CA.
183183
184184
```bash
185185
Using configuration from rootca.conf
@@ -197,7 +197,7 @@ You must first create an internal root certificate authority (CA) and a self-sig
197197
Data Base Updated
198198
```
199199
200-
After the certificate database is updated, confirm that both the certificate file, *rootca.crt*, is present in the in the *rootca* directory and the PEM certificate (.pem) file for the certificate is present in the *rootca/certs* directory. The file name of the .pem file matches the serial number of the root CA certificate. For more information about the formats of the certificate files, see [X.509 certificates](reference-x509-certificates.md#certificate-formats).
200+
After the certificate database is updated, confirm that both the certificate file, *rootca.crt*, is present in the *rootca* directory and the PEM certificate (.pem) file for the certificate is present in the *rootca/certs* directory. The file name of the .pem file matches the serial number of the root CA certificate. For more information about the formats of the certificate files, see [X.509 certificates](reference-x509-certificates.md#certificate-formats).
201201
202202
## Create a subordinate CA
203203
@@ -209,7 +209,7 @@ Similar to your root CA, the files used to create and maintain your subordinate
209209
- Create a configuration file used by OpenSSL to configure your subordinate CA, as well as certificates created with your subordinate CA
210210
- Request and create a CA certificate signed by your root CA that serves as your subordinate CA certificate
211211

212-
1. Start a Bash window and run the following command, replacing *{base_dir}* with the directory that contains your previously-created root CA.
212+
1. Start a Bash window and run the following command, replacing *{base_dir}* with the directory that contains your previously created root CA.
213213

214214
```bash
215215
cd {base_dir}
@@ -317,7 +317,7 @@ Similar to your root CA, the files used to create and maintain your subordinate
317317
openssl req -new -config subca.conf -out subca.csr -keyout private/subca.key
318318
```
319319

320-
You are prompted to enter a PEM pass phrase, as shown below, for the private key file. Enter and verify a pass phrase to generate your private key and CSR.
320+
You're prompted to enter a PEM pass phrase, as shown below, for the private key file. Enter and verify a pass phrase to generate your private key and CSR.
321321
322322
```bash
323323
Enter PEM pass phrase:
@@ -327,13 +327,13 @@ Similar to your root CA, the files used to create and maintain your subordinate
327327
328328
Confirm that the CSR file, *subca.csr*, is present in the subordinate CA directory and the private key file, *subca.key*, is present in the *private* subdirectory of the subordinate CA directory before continuing. For more information about the formats of the CSR and private key files, see [X.509 certificates](reference-x509-certificates.md#certificate-formats).
329329
330-
1. In the Bash window, run the following command to create an subordinate CA certificate in the subordinate CA directory. The command applies the `sub_ca_ext` configuration file extensions to the certificate. These extensions indicate that the certificate is for a subordinate CA and can also be used to sign certificates and certificate revocation lists (CRLs). Unlike the root CA certificate, this certificate isn't self-signed. Instead, the subordinate CA certificate is signed with the root CA certificate, establishing a certificate chain similar to what you would use for a public key infrastructure (PKI). The subordinate CA certificate is then used to sign client certificates for testing your devices.
330+
1. In the Bash window, run the following command to create a subordinate CA certificate in the subordinate CA directory. The command applies the `sub_ca_ext` configuration file extensions to the certificate. These extensions indicate that the certificate is for a subordinate CA and can also be used to sign certificates and certificate revocation lists (CRLs). Unlike the root CA certificate, this certificate isn't self-signed. Instead, the subordinate CA certificate is signed with the root CA certificate, establishing a certificate chain similar to what you would use for a public key infrastructure (PKI). The subordinate CA certificate is then used to sign client certificates for testing your devices.
331331

332332
```bash
333333
openssl ca -config ../rootca/rootca.conf -in subca.csr -out subca.crt -extensions sub_ca_ext
334334
```
335335

336-
You are prompted to enter the pass phrase, as shown below, for the private key file of your root CA. After you enter the pass phrase, OpenSSL generates and displays the details of the certificate, then prompts you to sign and commit the certificate for your subordinate CA. Specify *y* for both prompts to generate the certificate for your subordinate CA.
336+
You're prompted to enter the pass phrase, as shown below, for the private key file of your root CA. After you enter the pass phrase, OpenSSL generates and displays the details of the certificate, then prompts you to sign and commit the certificate for your subordinate CA. Specify *y* for both prompts to generate the certificate for your subordinate CA.
337337
338338
```bash
339339
Using configuration from rootca.conf
@@ -351,7 +351,7 @@ Similar to your root CA, the files used to create and maintain your subordinate
351351
Data Base Updated
352352
```
353353
354-
After the certificate database is updated, confirm that the certificate file, *subca.crt*, is present in the in the subordinate CA directory and that the PEM certificate (.pem) file for the certificate is present in the *rootca/certs* directory. The file name of the .pem file matches the serial number of the subordinate CA certificate. For more information about the formats of the certificate files, see [X.509 certificates](reference-x509-certificates.md#certificate-formats).
354+
After the certificate database is updated, confirm that the certificate file, *subca.crt*, is present in the subordinate CA directory and that the PEM certificate (.pem) file for the certificate is present in the *rootca/certs* directory. The file name of the .pem file matches the serial number of the subordinate CA certificate. For more information about the formats of the certificate files, see [X.509 certificates](reference-x509-certificates.md#certificate-formats).
355355
356356
## Register your subordinate CA certificate to your IoT hub
357357
@@ -384,7 +384,7 @@ Perform the following steps to:
384384
- Create a private key and certificate signing request (CSR) for a client certificate
385385
- Create a client certificate signed by your subordinate CA certificate
386386

387-
1. Start a Bash window and run the following command, replacing *{base_dir}* with the directory that contains your previously-created root CA and subordinate CA.
387+
1. Start a Bash window and run the following command, replacing *{base_dir}* with the directory that contains your previously created root CA and subordinate CA.
388388

389389
```bash
390390
cd {base_dir}
@@ -405,7 +405,7 @@ Perform the following steps to:
405405
openssl req -new -key private/{device_name}.key -out {device_name}.csr
406406
```
407407

408-
You are prompted to provide certificate details, as shown below. Replace the following placeholders with the corresponding values.
408+
You're prompted to provide certificate details, as shown below. Replace the following placeholders with the corresponding values.
409409
410410
| Placeholder | Description |
411411
| --- | --- |
@@ -438,7 +438,7 @@ Perform the following steps to:
438438
openssl ca -config subca.conf -in {device_name}.csr -out {device_name}.crt -extensions client_ext
439439
```
440440
441-
You are prompted to enter the pass phrase, as shown below, for the private key file of your subordinate CA. After you enter the pass phrase, OpenSSL generates and displays the details of the certificate, then prompts you to sign and commit the client certificate for your device. Specify *y* for both prompts to generate the client certificate.
441+
You're prompted to enter the pass phrase, as shown below, for the private key file of your subordinate CA. After you enter the pass phrase, OpenSSL generates and displays the details of the certificate, then prompts you to sign and commit the client certificate for your device. Specify *y* for both prompts to generate the client certificate.
442442

443443
```bash
444444
Using configuration from subca.conf
@@ -456,4 +456,4 @@ Perform the following steps to:
456456
Data Base Updated
457457
```
458458
459-
After the certificate database is updated, confirm that the certificate file for the client certificate is present in the in the subordinate CA directory and that the PEM certificate (.pem) file for the client certificate is present in the *certs* subdirectory of the subordinate CA directory. The file name of the .pem file matches the serial number of the client certificate. For more information about the formats of the certificate files, see [X.509 certificates](reference-x509-certificates.md#certificate-formats).
459+
After the certificate database is updated, confirm that the certificate file for the client certificate is present in the subordinate CA directory and that the PEM certificate (.pem) file for the client certificate is present in the *certs* subdirectory of the subordinate CA directory. The file name of the .pem file matches the serial number of the client certificate. For more information about the formats of the certificate files, see [X.509 certificates](reference-x509-certificates.md#certificate-formats).

0 commit comments

Comments
 (0)