Let's Encryptから無料のSSL証明書を構成してインストールしました。それは素晴らしく、設定も非常に簡単です。
しかし、このスノーデン後の時代、私はこれが本当に安全なのかと思っていました。たとえば、この手順では秘密鍵の作成を求められることはなく、魔法のように秘密鍵が作成されます。それは素晴らしいことですが、これが本当に安全であるかを誰かが見たことがありますか?
注: this のような関連する質問を見てきました。ただし、それは「ハッキング」に対する「プロセス」の安全性に関するものであり、証明書自体が安全であると想定しています。証明書のセキュリティとその結果の暗号化について、私はもっと心配しています。
「acme-tiny」と呼ばれる代替の「暗号化しよう」クライアントプロジェクトがあります。
自動化は少ないですが、サイズは小さくなります。 自分の言葉で :
これは、Let's Encrypt証明書を発行および更新するためにサーバーに投入できる小さな監査可能なスクリプトです。サーバー上で実行し、秘密のLet's Encryptアカウントキーにアクセスできる必要があるため、できるだけ小さく(現在は200行未満)しようとしました。必要条件はpythonおよびopensslのみです。
一般的なletsencryptクライアントを信頼しているが、CSRを手動で作成したいだけの場合は、次の手順に従ってください。
そして、このアイデアの中心は次の行です。
letsencrypt certonly \
--authenticator manual \
--server https://acme-v01.api.letsencrypt.org/directory --text \
--email [email protected] \
--csr signreq.der
たとえば、この手順では秘密鍵の作成を求められることはなく、魔法のように秘密鍵が作成されます。
私は暗号化が魔法であることを知っていますが、この場合も安全です... :-)
Let's Encryptクライアントを使用する場合、キーペアはサーバー上でローカルに生成され、notLet's Encryptサーバーに送信されます*-他のいくつかの商用CAとは対照的です、独自のサーバーでキーペアを生成しました/しませんでした。疑わしい場合は、使用しているクライアントのソースを確認する必要があります。
証明書のセキュリティとその結果の暗号化について、私はもっと心配しています。
「結果として生じる暗号化」は、証明書とssl/tls構成に完全に依存し、使用するCA(= Let's Encrypt)には依存しません。公式のLEクライアントが2048ビットの証明書を作成するので、これらは安全であると言えます。それ以外はすべて config に依存します。
*例外もありますが、非常にまれです。ブラウザーで秘密鍵を生成するWebブラウザークライアントがいくつかありますが、これは簡単に回避できます。実際の(オフライン)クライアントを使用するか、 https://gethttpsforfree.com/ を使用して手動で行います。