超簡単!! Certbotを利用してLet’s Encrypt の証明書をECDSA(EC: 楕円曲線暗号)で作成する

2021年12月25日Security,テクノロジーecdsa,let's encrypt

簡単になった手順

ちょっと前までは自分でopensslコマンドなどを利用してECDSAなCSR(証明書要求)を事前に作成する必要がありましたが、今は不要。全てCertbot君に任せてしまいましょう。

Step 1. 最新のCertbotのインストール。

公式のWebsiteより自身のプラットフォームにあった最新のCertbotをインストールしてください。

Githubの情報ではECDSAの機能は1.10.0から追加されているようですが、最新版をお勧めします。


ECDSAプライベートキーで新規に証明書を作成する

通常のcertonlyコマンドにオプション"–key-type ecdsa“を追加します。もしこのオプションを付けなかった場合、private keyとpublic keyはECDSAではなく、デフォルトのRSAで作成されます。

コマンド例:

certbot certonly --key-type ecdsa --manual -d testdomain.com -m californiataro@testdomain.com

コマンドが正しく処理されると、証明書発行のための通常のトライアルが始まります。指示に従い証明書を取得しましょう。

以上、終了です。簡単!(^^)

取得した証明書の中を見てみる

ちゃんとECDSAとなったか気になる方は中を確認して見ましょう。opensslコマンドを利用して、プライベートキーの中を確認します。

openssl ec -in privkey.pem -text -noout

以下のようにprime256v1などEC(楕円曲線暗号)のアルゴリズムが表示されます。

同様に証明書cert.pemの中は以下のコマンドで確認できます。publick keyにECDSAが使用されていることが確認できます。

openssl x509 -text -noout -in cert.pem


証明書の更新のタイミングでECDSAにしたい

更新(Renew)のタイミングでECDSAに切り替えていきたい場合は、"/etc/letsencrypt/cli.ini“ファイルを編集することをお勧めします。

cli.ini内で以下のように編集します。

key-type = ecdsa
elliptic-curve = secp384r1

elliptic-curveパラメーターでECのアルゴリズムを指定しなかった場合、デフォルトは"elliptic-curve = secp256r1“です。

詳細は以下の公式Websiteのドキュメントをご参照ください。

上のようにcli.iniでパラメーターを設定しておくと、renewコマンドでオプション"–key-type ecdsa"を指定する必要がなくなります。

更新コマンド例:

/usr/sbin/certbot renew --webroot -w /var/www --force-renewal