見出し画像

Primergy の iRMC で、Let's Encrypt の証明書を使う

先日、Fujitsu TX3120M4 の iRMC (S5) で、Let's Encrypt の証明書を使用しようとしたところ、色々と躓いたので、設定方法をメモしておきます。

なお、2024年5月時点での情報であり、今後、iRMC の仕様変更や、Let's ncrypt が発行する証明書の形式が変わる可能性があります。

また、私は、証明書の細かいこと(形式や規格等)は知らないので、細かい仕様などを知りたい人は、別に調べてください。


使用したソフトウェアのバージョン

iRMC S5 3.57P (D3673_03.57P_sdr03.44)
certbot 2.9.0 (Ubuntu 24.04 on WSL2)
OpenSSL 3.2.1 (Windows 11 22635.3575)
 Win32/Win64 OpenSSL Shining Light Productions (slproweb.com)

設定方法

1. Let's Encrypt の証明書を、RSA (PKCS#8) 形式で取得する。

Let's Encrypt では、2021年4月ごろから、当時はデフォルトだった RSA (PKCS#8) 以外に、ECDSA 形式の証明書を選択できるようになりました。
ECDSA Issuance available in Staging: March 24 - API Announcements - Let's Encrypt Community Support (letsencrypt.org)

そして、いつの間にか(2023年春頃)、ECDSA 形式がデフォルトになり、RSA がオプションで選ぶ選択肢になったようです。

そして、ECDSA 形式から、RSA 形式には、OpenSSL 等で証明書を変換することはできません
よって、ECDSA 形式で取得した場合 (特に形式に何も指定していない場合も含む) では、RSA 形式で、証明書を再度取得する必要があります。

自分の場合は、以下のような感じ(一部省略)で、取得していますが、重要なのは、--key-type rsa を加えることであり、ほかは、普段各自で使っているときのままで大丈夫です。

certbot certonly \
--agree-tos  \
--config-dir ~/cert/conf \
--work-dir ~/cert/work  \
--logs-dir ~/cert/log \
--dns-cloudflare \
--dns-cloudflare-credentials ~/cert/cloudflare \
--dns-cloudflare-propagation-seconds 75 \
--key-type rsa \
-d praecipua.org \
-d *.praecipua.org \
-d *.home.praecipua.org

上記のコマンドでは、
~/cert/conf/live/[ドメイン名]/
に、cert.pem, chhain.pem, fullchain.pem, privkey.pem の4つ (実際はシンボリックリンク) が書き出されます。

保存パスを指定しない場合、
/etc/letsencrypt/live/[ドメイン名]/
に保存されます。

なお、シンボリックリンクの先の実体は、基本的には、
~/cert/conf/archive/[ドメイン名]/ (自分のコマンドの場合)
/etc/letsencrypt/archive/[ドメイン名]/ (保存パスを指定していない場合)
の中の、cert1.pem などのうち、cert + "1" + .pem の "" 部分の数字が、最も大きいものです。
(live のほうのディレクトリで、ls -la などをすることでも、実体のファイルのパスはわかります。)

なお、このままでは、まだアップロードできません。

ちなみに、ブラウザのコンソールを見ると、エラーの種別が分かります。
Certificate BEGIN wrongly formatted とありますね。

次のステップに進むために、この証明書たちのコピーを作ります。


2. 証明書を、RSA (PKCS#1) に変換する。

今回は、Windows に入れた OpenSSL を使っていますが、Ubuntu 内の OpenSSL でもかまいません。

先ほど取得した証明書のうち、privkey.pem を、OpenSSL で、PKCS#8 から PKCS#1 に変換します。
RSA (PKCS#8) は、-----BEGIN PRIVATE KEY----- で始まり、RSA (PKCS#1) では -----BEGIN RSA PRIVATE KEY----- で始まります。
(それっぽい例を、記事の下に貼っておきます。)

自分の場合は、以下のような感じで変換しています。
重要なのは、-traditional の部分です。
これをつけないと、RSA (PKCS#8) の形式で出力されてしまいました。
(つまり、入力した証明書と同じ形式)

openssl rsa -in privkey.pem -out privkey_rsa.pem -traditional

3. iRMC でアップロードする。

iRMC にログインし、
ツール -> 証明書 -> 現在の SSL/TLS 証明書 -> ファイルから読み込み
Tools
-> Certificates -> Current SSL/TLS Certificate -> Load from File
を押します。

あとは、先ほど certbot で取得した公開鍵 (cert.pem / fullchain.pem) と、OpenSSL で RSA (PKCS#1) に変換した秘密鍵 (privkey_rsa.pem) を選択し、アップロードします。

あとは、再起動することで、アップロードした証明書を、適用することができます。

再起動したあとは、ブラウザを再度開きなおし (F5 でリロードではない)、certbot で証明書を取得するときに、-d オプションで指定したドメインを使ってアクセスします。
(そのドメインと、iRMC の IP アドレスを、事前に DNS や hosts で紐付けておく必要もありますので、お忘れなく。)

そうしないと、再起動が終わっても、エラーが出たままになってしまいます。

正常に証明書が適用されえていれば、このようになるはずです。

なお、証明書をアップロードしたところの下に、「CAS と SMTP の現在の CA 証明書」「アップロードとデプロイメント用のSSL/TLS CA証明書」という項目があり、証明書をアップロードできますが、そこには、Let's Encrypt から取得した chain.pem をアップロードする必要はありません。
(特に変換などをしなくても、アップロードすることは可能です。)


その他補足情報

証明書の形式の種類

適当に文字列を入れているので、実際の形式とは少し異なりますが、見た目でなんとなく識別できれば程度のものです。
確実に識別したいときは、ツール等で証明書を確認してください。

・ECDSA (現在の Let's Encrypt デフォルト)
 秘密鍵がやけに短くなりました。

-----BEGIN PRIVATE KEY-----
MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgjV/MwIin7ry1wl/J
p/QsntfENiYjw6oy5oU2nmUOiGahRANCAATRVM8xFwRb+BnZ/oEzqfDl3M3h4E6S
zFtndtgXY8bWPl0T4t8HCDwwPfUh3INwNXeL+LMedCPG2J5tWb04iA5X
-----END PRIVATE KEY-----

-----BEGIN CERTIFICATE-----
MIIClzCCAX8CCQDqKfMbcLQPCzANBgkqhkiG9w0BAQsFADAQMQ4wDAYDVQQDDAVt
YWlsMREwDwYDVQQKDAhPcGVuU0NBMRIwEAYDVQQHDAlMb3MgQXJib3IxGDAWBgNV
yiSvAsW+k1yDleNXrrw4V+dXrJ9m2WhhB4M3j8V8eOjGV1GvKlHkzr0Ag4PIYKsH
jkmkVnyCEJzn1X3obgUQ5DV4lw6Xs76g81ZVn8G6ZuIRpAR6rvwAf1h1n71gmSZQ
8x3S5Xt/QCbylKUw3N1ll4CNeX6l3tgKemw57Yh3WEWpIlZzW4fB4rTf8g+C5coZ
BAgMD0dyZWV0aW5nIFN0YXRlczELMAkGA1UEBhMCR0IwHhcNMjIwMTA2MTkwODAw
WhcNMjMwMTA2MTkwODAwWjAEMBIGA1UEAwwLZXhhbXBsZS5jb20xEjAQBgNVBAoM
CVByb2dyYW1taW5nMRUwEwYDVQQIDAxTb21lIEFwcGxlMRQwEgYDVQQHDAtBcHBs
ZSBJbmMuMRkwFwYDVQQJDBBVbml0ZWQgU3RhdGUgQ2l0eTEWMBQGA1UEBwwNT3Bl
blNTQ0EgUmVnaW9uMRgwFgYDVQQGDA9HcmVldGluZyBTdGF0ZXMxCzAJBgNVBAYT
AkdCMDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL5/K7L9/1dHfml4
yiSvAsW+k1yDleNXrrw4V+dXrJ9m2WhhB4M3j8V8eOjGV1GvKlHkzr0Ag4PIYKsH
jkmkVnyCEJzn1X3obgUQ5DV4lw6Xs76g81ZVn8G6ZuIRpAR6rvwAf1h1n71gmSZQ
8x3S5Xt/QCbylKUw3N1ll4CNeX6l3tgKemw57Yh3WEWpIlZzW4fB4rTf8g+C5coZ
RdPEY+g7WewOQXU8/sbWo2yJNtGZlkl29Q1dxXXbIwcUCb4thPIH/MAGL8Kc6UxG
6hTMT2Frg2QcpS2pP1s2S3xD6L6LdR6mZJk5Csg/j7eyoU02lXGdc6sNQ3M7uN/J
iFkCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEABVuQEnFeQ1plN8CfA5twAf1d5TkU
EFq4TThgV+i7mvf8dp4cPOiDLBq1gJCKRs73d1p7w5xk0jLifwrUc8NTK+sjWs/N
qkV0KgDDaEJU9j7qZ9hXGjz/6wlFhCz9GzhH0lV6dOY+M0XoEVp+J+5fIyHocW2
WQ0gMZexcsIxFU1+/tT0nAMXTOCscwV1ivu2X+h9XaVQ+O7bexnl/B5ExvWWyfvL
pF4X9j4TVzRPjBlNNUbuZ67VQ5oF23D13+uTlSotftAeX7NLv2e9b3/h9EZTq/9
ZSBJbmMuMRkwFwYDVQQJDBBVbml0ZWQgU3RhdGUgQ2l0eTEWMBQGA1UEBwwNT3Bl
blNTQ0EgUmVnaW9uMRgwFgYDVQQGDA9HcmVldGluZyBTdGF0ZXMxCzAJBgNVBAYT
AkdCMDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL5/K7L9/1dHfml4
yiSvAsW+k1yDleNXrrw4V+dXrJ9m2WhhB4M3j8V8eOjGV1GvKlHkzr0Ag4PIYKsH
jkmkVnyCEJzn1X3obgUQ5DV4lw6Xs76g81ZVn8G6ZuIRpAR6rvwAf1h1n71gmSZQ
8x3S5Xt/QCbylKUw3N1ll4CNeX6l3tgKemw57Yh3WEWpIlZzW4fB4rTf8g+C5coZ
95C1nVgE9Nlqf6mtbCzLP1ouczXYRoKzG==
-----END CERTIFICATE-----


・RSA PKCS #8 (--key-type rsa で取得できるもの)
 秘密鍵が長いですね。

-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDU2e6TdVl3C4xe
cBV8O4ncvJv0D5oLg5+33Yr0k4mu7My6P/wwx5lDoR3rRAohk2Z45UuAjX8P6Nv8
yb7bf9XQLl2IxtqOVg4mgZZFVHpsxUWzK2cn+VRPLbUUNbj/7BmMl/C2dLd4xBOm
zhNmjP+ViTbGCBv1mvE6/AVnlI93pGk7ImtLxzQarIFVk9PcN2QU4xZp9h8n4eRi
t4/B3G3xW1pGYTnJUP+9WQFQvy5fq0lELI9/h8QpWq8OL/UjfrPWdNaPzr1sOyta
o6oOL/sVlnQp3LY0G/QQJfU+frLzNZATa/+iaX4GnUD0PUkO/erGgP52wvPq3qGc
eCSy4J3TAgMBAAECggEBAI1sNQQzXn4nQKqbvRZpNpjGnU1tJxFcR1Yby5zK+YMc
rCxzsvkXTtxamVn37C5cSGsVjPz1Km4w4I3+HtXXo7pnrrZwAdXFRlthQ+nXxopg
DM9lDwI+6ngk1B6iFcvWso3n9CbYz4Qyxe1zcr+QkmJ1Og9/0TwGpeB8KKbF6ZoW
RjMbTfC7tJ1v4SBX7MLBo0qX68s2t4dJ0EM0LxY9w+qldT5ar62Tou5pAMuhxMyH
dS7pd/lazF1cBj1bSjJLUh8f7jMSTibqfU4tDQqELR5FDBLHwQtxkTkV3ql+zBQx
qHujl8bUdilB5+RlgOa5J55EOyIvnVb4NWzPQO1OR5ECgYEA9uYzHBWYz3oNGSmL
4+hRJZVjTj3aOUEK45CpMmQxTLwR27UfO7chWUdgt30RMMuyntXck1OsLxZ2X4Ld
t8YYVSTOBu/8Y21vD4CBm1MXYcW1rnuEMQBrth7QvTgryGYtb8NxM4UKIc8d2Cz2
lYryCCWlvWVUvpUSrZB3R45sM60CgYEA5A2IGB5kIYz/ZU3mQwW8VwxTmQb+qRyI
q92rCjs4+pIi9xgNu0TqqZqZkR9Pj65P61A+nPb9KtEFf/SmvIXtILtFXRqZBn+n
aPXoPNe/M3OW9n7gIsB3l0zGb4uoPOzqBYrMOw1ujj6RYLjv8/0a/dmI7oED+8L4
T9vn5fIDKZ0CgYBb8bZ1+ZmyX2tO1h61A3RwNQ04KXw//cI33h/gIhJIEks+e0Pl
a8kD+kiUg+hQbJCrHzm1LrVY/kYQp4+g7VHfT7WzXOl7Bzi48GUPglZ55uLlKmc7
7b3Lj1Un82DF7A4zRkAMTrcYiWPOKx4t0OQ9S7K8yc3oL2nrc3vBrXoTcQKBgFxe
XOzr5hndpXv+wuaZec0wxfSX+0xF/itp3jAq+1pHRNq8NcECUk/4zqfWURHxVgKB
FtNauYuhkwxUcAKW4z0oguZYzv/2RgZdLakV4kY/XOzXXCt+3o8tLo6fFmpk8GaY
1CrSSK2mmMDG4NvN5OW5K6q/1rN6ABHBA0U+abC5AoGABWtCyHl56hLx7JYXXQlW
Bb8+FRtyzyudEzQeBxMWkrW1vVfzReVK1t/h2/8lfok5yH0d8K/6+MWTwbxHHnT7
+cxnItvMPFRWL5PPfN8D2nILM82Nfv+pehGSSR4hQ7YP6O07iqT3nvmxX48iz9yC
lU9gK5sJWfxIpIYwsZv+2aN8
-----END PRIVATE KEY-----

-----BEGIN CERTIFICATE-----
MIIDzzCCAregAwIBAgIUNvjT0dCv1MvG+g2XyFwDs4ySqaYwDQYJKoZIhvcNAQEL
BQAweDELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMRYwFAYDVQQHDA1Nb3VudGFp
biBWaWV3MRMwEQYDVQQKDApPUEVOU0NBIEx0ZDEQMA4GA1UECwwHQXBwbGUxGTAX
BgNVBAMMEHRlc3RfY2VydF9hcHAwHhcNMTkxMTE2MTUyMzQ4WhcNNDExMTE2MTUy
MzQ4WjB4MQswCQYDVQQGEwJVUzELMAkGA1UECAwCQ0ExFjAUBgNVBAcMDU1vdW50
YWluIFZpZXcxEzARBgNVBAoMCk9QRU5TQ0EgTHRkMRAwDgYDVQQLDAdBcHBsZTEZ
MBcGA1UEAwwQdGVzdF9jZXJ0X2FwcDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
AQoCggEBALU9TV65k7WG7h/0F4/9AN9Nsb3F8gMn6j3E1Hfh3TFmDfvYgA0UbMKl
uPFlEiebpHH+XK7ysYm6DWXh3T/QjCEtzdpvW+8jt+8fj7y9F0h4Py7AJ1XrN1Vx
Mp/M4gSQvPHahX+mAlvw+vT93oyyqOs10xwKLpyMpIY7G9WbCfBtAhcjjK6CVOlD
qHQF3BWXp/bfGZ1vI2/H+mbtPqM0xQUxOgpXrBhJikgN5ef63WAhzSsE8IT+zIXs
66etgRJq5duMCF7rzhILq7OZ42gVt+tWpgRb6sB/9X4E0/tN1xD9LtN+I3Fl9K5J
sMEO4pnyClCv7vWgRn+lnuTzSh9NyF0CAwEAAaNTMFEwHQYDVR0OBBYEFBfu/rGu
kYTNqWZsKXMEw3K5bEVuMB8GA1UdIwQYMBaAFBfu/rGukYTNqWZsKXMEw3K5bEVu
MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBALc1Tf3IgKsXy7nT
AQoCggEBALU9TV65k7WG7h/0F4/9AN9Nsb3F8gMn6j3E1Hfh3TFmDfvYgA0UbMKl
uPFlEiebpHH+XK7ysYm6DWXh3T/QjCEtzdpvW+8jt+8fj7y9F0h4Py7AJ1XrN1Vx
Mp/M4gSQvPHahX+mAlvw+vT93oyyqOs10xwKLpyMpIY7G9WbCfBtAhcjjK6CVOlD
qHQF3BWXp/bfGZ1vI2/H+mbtPqM0xQUxOgpXrBhJikgN5ef63WAhzSsE8IT+zIXs
66etgRJq5duMCF7rzhILq7OZ42gVt+tWpgRb6sB/9X4E0/tN1xD9LtN+I3Fl9K5J
sMEO4pnyClCv7vWgRn+lnuTzSh9NyF0CAwEAAaNTMFEwHQYDVR0OBBYEFBfu/rGu
kYTNqWZsKXMEw3K5bEVuMB8GA1UdIwQYMBaAFBfu/rGukYTNqWZsKXMEw3K5bEVu
MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBALc1Tf3IgKsXy7nT
uPFlEiebpHH+XK7ysYm6DWXh3T/QjCEtzdpvW+8jt+8fj7y9F0h4Py7AJ1XrN1Vx
kYTNqWZsKXMEw3K5bEVuMB8GA1UdIwQYMBaAFBfu/rGukYTNqWZsKXMEw3K5bEVu
MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBALc1Tf3IgKsXy7nT
h/Kt/QsJ43GnDxWVYycJFtozlT1bHz1A6sB1eFKEhbsYbQ53z+f+fAXf5TprL3P4
G38aYbWgqE2vN+GKpgkMyrcc0rXlgIOELf3fr68LsWQhD8unRbT3wCQImByu+qP5
mWfrn6XVUfCR/fnJcyM4EWnqUNgBKyb6xIna3fBphW9inIazGt8czNhxbJ8U7pV1
/Hv7sKZ/GubXv/n4KiFS+6E3jZb9wH9MdxGZoRqk+x3+jCtWe/2pdp6T+9IBttYx
D71eEAmLUmxXa5+U1rDTtWUjqlRULzFVpJ2JAqg+q0==
-----END CERTIFICATE-----

・RSA PKCS #1 (OpenSSL で変換したもの)
 秘密鍵が BEGIN RSA PRIVATE KEY で始まることが特徴

-----BEGIN RSA PRIVATE KEY-----
MIIDzzCCAregAwIBAgIUNvjT0dCv1MvG+g2XyFwDs4ySqaYwDQYJKoZIhvcNAQEL
BQAweDELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMRYwFAYDVQQHDA1Nb3VudGFp
biBWaWV3MRMwEQYDVQQKDApPUEVOU0NBIEx0ZDEQMA4GA1UECwwHQXBwbGUxGTAX
BgNVBAMMEHRlc3RfY2VydF9hcHAwHhcNMTkxMTE2MTUyMzQ4WhcNNDExMTE2MTUy
MzQ4WjB4MQswCQYDVQQGEwJVUzELMAkGA1UECAwCQ0ExFjAUBgNVBAcMDU1vdW50
YWluIFZpZXcxEzARBgNVBAoMCk9QRU5TQ0EgTHRkMRAwDgYDVQQLDAdBcHBsZTEZ
MBcGA1UEAwwQdGVzdF9jZXJ0X2FwcDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
AQoCggEBALU9TV65k7WG7h/0F4/9AN9Nsb3F8gMn6j3E1Hfh3TFmDfvYgA0UbMKl
uPFlEiebpHH+XK7ysYm6DWXh3T/QjCEtzdpvW+8jt+8fj7y9F0h4Py7AJ1XrN1Vx
Mp/M4gSQvPHahX+mAlvw+vT93oyyqOs10xwKLpyMpIY7G9WbCfBtAhcjjK6CVOlD
qHQF3BWXp/bfGZ1vI2/H+mbtPqM0xQUxOgpXrBhJikgN5ef63WAhzSsE8IT+zIXs
66etgRJq5duMCF7rzhILq7OZ42gVt+tWpgRb6sB/9X4E0/tN1xD9LtN+I3Fl9K5J
sMEO4pnyClCv7vWgRn+lnuTzSh9NyF0CAwEAAaNTMFEwHQYDVR0OBBYEFBfu/rGu
kYTNqWZsKXMEw3K5bEVuMB8GA1UdIwQYMBaAFBfu/rGukYTNqWZsKXMEw3K5bEVu
MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBALc1Tf3IgKsXy7nT
AQoCggEBALU9TV65k7WG7h/0F4/9AN9Nsb3F8gMn6j3E1Hfh3TFmDfvYgA0UbMKl
uPFlEiebpHH+XK7ysYm6DWXh3T/QjCEtzdpvW+8jt+8fj7y9F0h4Py7AJ1XrN1Vx
MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBALc1Tf3IgKsXy7nT
h/Kt/QsJ43GnDxWVYycJFtozlT1bHz1A6sB1eFKEhbsYbQ53z+f+fAXf5TprL3P4
G38aYbWgqE2vN+GKpgkMyrcc0rXlgIOELf3fr68LsWQhD8unRbT3wCQImByu+qP5
YWluIFZpZXcxEzARBgNVBAoMCk9QRU5TQ0EgTHRkMRAwDgYDVQQLDAdBcHBsZTEZ
MBcGA1UEAwwQdGVzdF9jZXJ0X2FwcDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
mWfrn6XVUfCR/fnJcyM4EWnqUNgBKyb6xIna3fBphW9inIazGt8czNhxbJ8U7pV1
/Hv7sKZ/GubXv/n4KiFS+6E3jZb9wH9MdxGZoRqk+x3+jCtWe/2pdp6T+9IBttYx
D71eEAmLUmxXa5+U1rDTtWUjqlRULzFVpJ2JAqg+q0==
-----END RSA PRIVATE KEY-----


iRMC のドキュメントの、証明書に関する部分

証明書が、RSA (PKCS#1) 形式であることが必要な根拠でもあります。
(様々な形式を、当てずっぽうに試していって、特定したわけではないです。)

まずは、ドキュメントをダウンロードしましょう。

Fujitsu Technical Support pages from Fujitsu Japan
このページで、機種を指定 (今回は PRIMERGY TX1320 M4) します。
OS は、OS Independent (BIOS, Firmware, etc.) を選択します。(ほかの OS を選択しても出るかもしれませんが。)
そして、サーバー管理コントローラ -> iRMC S5 (Kronos 5) を選択します。
タイトルは iRMC S5 - Web インターフェース 3.5x、バージョンは (2023/10) が、目的のドキュメントです。

カートに入れず直接ダウンロードする を押し、数秒待つと出てくるポップアップで、ファイルをダウンロードする を押すとダウンロードできます。

そして、ドキュメントの 2.3.7 (131 頁) 以降が、証明書に関する部分です。

PKCS#1 形式が要求されることは、135頁の、鉛筆マークがある補足部分からわかります。

秘密鍵は "-----BEGIN RSA PRIVATE KEY-----" で開始する必要がありま す。 "-----BEGIN PRIVATE KEY-----" で開始する秘密鍵は、openssl rsa -in private.key -out private_rsa.key で RSA 秘密鍵に変換で きます。

iRMC S5 - Web インターフェース 3.5x  p.135

補足で既に書いたとおり、BEGIN RSA PRIVAT KEY とあることから、RSA (PKCS#1) 形式が要求されていると読み取れます。
なお、秘密鍵にしか言及されていませんが、公開鍵のほうでも、RSA (PKCS#1) 形式でないとだめでした。

なお、この記載通りに、OpenSSL で、openssl rsa -in private.key -out private_rsa.key とやっても、RSA (PKCS#1) の形式にはなりません。
記事ですでに言及した、-traditional オプションがありませんね。

このあたり、ドキュメントが数年前のものではないのだから、(OpenSSL で -traditional をつけないといけなくなったのは、相当前ですし、) もう少ししっかり書いてほしいところですね。


謝辞

のびた (@XN6sOlJ7VU8000) 様
Let's Encrypt の証明書の形式が、ECDSA に変更されていたことを、教えてくださいました。ありがとうございました。

おわり。