・CentOS8でプライベート認証局を作って、LAN内のWEBサーバにHTTPSアクセスができるようにしたい。
・ネットで検索すると、新旧のいろいろな情報が出てきて、同じように真似してやってみたが上手くいかないので、最新の手順を詳しく知りたい。
こういった疑問に答えます。
本記事の内容
- CentOS8とOpenSSLでプライベート認証局(ルートCA)を作る方法
- CentOS8とOpenSSLで中間認証局を作る方法
- CentOS8のWEBサーバの証明書を作る方法
- CentOS8・ApacheのWEBサーバに証明書を設定してHTTPSアクセスを許可する方法
この記事を書いている私は、某SIerに勤務しながら、
WEB系エンジニア・インフラエンジニアに憧れて、プログラミングおよびインフラ技術の勉強をしています。
私が実機で試したコマンドや画像を載せて書いています。
記事の信頼性担保に繋がると思います。
前回の記事
前回の記事では、ルートCAの作成までを済ませました。
①~⑦までをまとめて読みたい方は下記のまとめ記事から。
中間CAの作成
中間CA用のディレクトリ作成
mkdir /etc/pki/interCA
/etc/pki/interCA/newcerts
[root@SV-EARTH pki]# cd /etc/pki/ [root@SV-EARTH pki]# mkdir /etc/pki/interCA [root@SV-EARTH pki]# cd interCA [root@SV-EARTH interCA]# mkdir /etc/pki/interCA/newcerts [root@SV-EARTH interCA]# mkdir /etc/pki/interCA/private
中間CAの秘密鍵の作成
カレントディレクトリを秘密鍵の作成ディレクトリ「private」に移動
cd /etc/pki/interCA/private
[root@SV-EARTH pki]# cd /etc/pki/interCA/private
中間CAの秘密鍵の作成
openssl genrsa 2048 > interCA_key.pem
[root@SV-EARTH private]# openssl genrsa 2048 > interCA_key.pem Generating RSA private key, 2048 bit long modulus (2 primes) ............+++++ .........................................................................+++++ e is 65537 (0x010001)
作成した中間CAの秘密鍵の内容の表示
openssl rsa -text < interCA_key.pem
[root@SV-EARTH private]# openssl rsa -text < interCA_key.pem RSA Private-Key: (2048 bit, 2 primes) modulus: 00:bc:86:c1:17:01:5c:f0:84:86:54:31:77:5c:c7: 4c:92:07:ef:89:f5:33:44:3d:d3:b3:e2:fe:14:c1: ------------------(中略)----------------- cc:da:01:b9:da:2f:9d:89:48:c9:81:a0:e6:5f:d0: 47:7c:50:26:da:12:8f:7b:22:18:13:8a:57:23:f6: 38:5f publicExponent: 65537 (0x10001) privateExponent: 7a:36:cd:33:d1:b1:63:46:36:22:9c:52:a9:b5:95: 60:d1:7e:2a:ab:e7:09:25:1f:79:6c:fc:93:8e:4e: ------------------(中略)----------------- c1:3e:d8:c0:8c:95:9d:b8:41:03:87:69:0d:ea:53: 30:c3:b4:3b:79:2d:ce:54:72:3e:4c:ee:d3:21:9a: 79 prime1: 00:ea:4f:a4:32:33:ad:aa:05:7e:05:76:7b:cf:a5: f0:42:c3:ec:6d:7c:c8:03:72:25:44:95:d0:54:89: ------------------(中略)----------------- 9b:f6:ef:45:10:b4:50:9a:06:38:fa:37:79:89:2e: 61:83:87:be:14:25:1d:12:9d prime2: 00:cd:fa:2c:9b:fb:d9:b8:a4:38:2d:fd:9f:d3:47: 4d:c5:3b:48:d9:5f:39:e2:55:8d:ba:de:ce:17:86: ------------------(中略)----------------- 05:71:87:a2:f3:b3:27:b2:43:61:15:c7:5d:23:d4: 17:cf:6b:13:d8:82:7c:f8:2b exponent1: 2a:36:84:ef:62:6e:14:26:7f:28:be:ca:d9:83:1c: c0:fa:89:3a:c4:73:48:63:a5:21:31:18:62:52:80: ------------------(中略)----------------- 57:54:8e:0d:cf:5e:82:11:42:ec:99:57:f5:05:fd: 1d:74:34:23:6e:f8:48:e5 exponent2: 00:89:af:51:62:73:57:76:35:4f:d8:6e:51:07:ca: ------------------(中略)----------------- f5:dc:5e:6d:27:e9:21:61:64:ed:22:76:d7:46:c8: 68:fb:1a:cf:b2:57:6f:91:99:b8:ab:f6:38:2c:5a: fa:0f:8c:64:17:b6:22:13:41 coefficient: 00:a3:af:0a:45:1e:a3:6a:2e:d1:1f:0c:06:85:59: 2b:1f:39:13:34:96:34:d8:45:54:41:88:b1:69:13: ------------------(中略)----------------- 55:21:24:da:24:88:29:ca:d8:82:41:be:44:3c:df: 66:4f:50:ed:fd:f0:66:c4:f2:02:27:91:d0:b0:7b: e9:af:20:be:7a:78:ea:18:f6:ae:0d:cf:7f:4a:c9: bc:ee:49:fc:2e:02:20:0c:e8 writing RSA key -----BEGIN RSA PRIVATE KEY----- MIIEpAIBAAKCAQEAvIbBFwFc8ISGVDF3XMdMkgfvifUzRD3Ts+L+FMH22c/eSRMe ENhD1f2hiLgrHiPRWr99Q9NbXeYsV7VS4ekOmkVD+xHmGIGcM/S4IEEqzu9iBj+D sa5YAsXdGpLdbNw9HTcSJiltGByC3zHz1Dc4Lm+2y464bhUsiuU1IiRNdKfncnpb ------------------(中略)----------------- Zo06rQQzfI50qGBTUQG2AjqMfTwNWxI/EUsG5l6b+ZTMpYUKIvPRujiXmon6FB0l UpYVQCo03hCmXIPX7vXcXm0n6SFhZO0idtdGyGj7Gs+yV2+Rmbir9jgsWvoPjGQX tiITQQKBgQCjrwpFHqNqLtEfDAaFWSsfORM0ljTYRVRBiLFpE0R/Jm6SxorHfS// C1S7S5tOolRw0yclvTKwwAJuPDJerCU4AO/9fClZGhC34VUhJNokiCnK2IJBvkQ8 32ZPUO398GbE8gInkdCwe+mvIL56eOoY9q4Nz39KybzuSfwuAiAM6A== -----END RSA PRIVATE KEY-----
中間CAの署名要求CSRファイルの作成
中間CAからルートCAに対して、署名をしてもらうための署名要求CSRファイルを作成します。
署名要求CSRファイルの作成
openssl req -new -key /etc/pki/interCA/private/interCA_key.pem > /etc/pki/interCA/interCA_csr.pem
[root@SV-EARTH interCA]# openssl req -new -key /etc/pki/interCA/private/interCA_key.pem > /etc/pki/interCA/interCA_csr.pem You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [XX]:JP State or Province Name (full name) []:Tokyo Locality Name (eg, city) [Default City]:Shinagawa-ku Organization Name (eg, company) [Default Company Ltd]:EARTH PLANET Inc. Organizational Unit Name (eg, section) []:★★★空のまま[Enter]キー★★★ Common Name (eg, your name or your server's hostname) []:EARTH PLANET Inter CA Email Address []:interca@sv-earth.planet.jp Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []:★★★空のまま[Enter]キー★★★ An optional company name []:★★★空のまま[Enter]キー★★★
作成した署名要求CSRファイルの内容の表示
openssl req -text < interCA_csr.pem
[root@SV-EARTH interCA]# openssl req -text < interCA_csr.pem Certificate Request: Data: Version: 1 (0x0) Subject: C = JP, ST = Tokyo, L = Shinagawa-ku, O = EARTH PLANET Inc., CN = EARTH PLANET Inter CA, emailAddress = interca@sv-earth.planet.jp Subject Public Key Info: Public Key Algorithm: rsaEncryption RSA Public-Key: (2048 bit) Modulus: 00:bc:86:c1:17:01:5c:f0:84:86:54:31:77:5c:c7: 4c:92:07:ef:89:f5:33:44:3d:d3:b3:e2:fe:14:c1: ------------------(中略)----------------- 71:20:c3:03:8a:c1:bc:a5:4b:ec:7a:88:f3:e8:cc: cc:da:01:b9:da:2f:9d:89:48:c9:81:a0:e6:5f:d0: 47:7c:50:26:da:12:8f:7b:22:18:13:8a:57:23:f6: 38:5f Exponent: 65537 (0x10001) Attributes: a0:00 Signature Algorithm: sha256WithRSAEncryption 03:0a:a0:de:0e:cf:ed:40:68:47:88:91:fa:c2:12:bc:7c:25: 41:d7:6e:a4:2a:f4:93:fd:5b:f2:59:62:bb:a5:77:d7:09:b2: ------------------(中略)----------------- 79:3d:fb:6a:b8:0f:a4:18:9e:aa:71:0a:39:09:f3:11:12:c9: 7e:72:2a:ed:18:92:61:ed:6a:3a:a0:2a:34:72:9e:13:34:24: b0:66:36:e8 -----BEGIN CERTIFICATE REQUEST----- MIIC4TCCAckCAQAwgZsxCzAJBgNVBAYTAkpQMQ4wDAYDVQQIDAVUb2t5bzEVMBMG A1UEBwwMU2hpbmFnYXdhLWt1MRowGAYDVQQKDBFFQVJUSCBQTEFORVQgSW5jLjEe ------------------(中略)----------------- U0NEtYcUbFqZgcHiaz3owA6txaL2h57oM7aPwv15PftquA+kGJ6qcQo5CfMREsl+ cirtGJJh7Wo6oCo0cp4TNCSwZjbo -----END CERTIFICATE REQUEST-----
少し長くなったので、続きはまた次回の記事に書きます。