暗号化しましょう:ステップで証明書を取得する

この記事では、Windows(IIS / Microsoft Azure)またはLinux(完全に手動の)Webサーバーにさらにインストールするために、手動モードでLet's Encryptから証明書を取得する実際の方法について説明します。 公式のWindowsクライアントがないため、証明書の生成にはLinuxディストリビューションが使用されます。







ベータテスト用のアプリケーションが公開された初期の頃、サインアップすることが決定され、つい最近ACMEがドメインの有効な証明書を生成することを通知する手紙が届きました。



次に、プロセスの段階的な手順を記載した記事を公開することを決定しました。これにより、リリースするまでに、すぐに証明書を作成して使用を開始できます。



仕組み



プロセスの完全な説明はこのリンクで利用可能です。

ドメインの所有権を確認し、証明書を正常に生成するためには、DNSレコードまたはAレコードが参照するサーバーにアクセスする必要があります。これは非常に論理的です。



自動証明書管理環境(ACME)ソフトウェアスイート(Pythonで記述の目的は、Linux環境での証明書の生成とインストールを自動化することです。



Windows IISおよびAmazon Web Servicesで証明書を生成およびインストールできる非公式のオープンソースWindowsクライアントがありますが、キーを取得して手動でインストールするタスクがありました。 彼との仕事についての記事を書きたい人は誰でもお勧めします。



段階的なプロセス



注意:この手順では、手動モードで証明書を作成する方法を説明します。証明書を自動的に生成および更新する簡単な方法があります。 このリソースですぐに説明されることを願っています。



[11/01/17]新しいCertBotクライアント



2017年の記事の小さな更新。

これで、CertBotをインストールし、証明書を手動で取得できます。



簡単な指示:



1.ディストリビューションをダウンロードする



wget https://dl.eff.org/certbot-auto







2.ファイル許可の設定



chmod a+x certbot-auto







3.手動モードで証明書を取得するために実行します



./certbot-auto certonly --authenticator manual







4.プログラムの指示に従います(詳細については、ステップ4から以下の完全な指示を参照してください)。



詳細な手順(古いクライアント-まだ機能しています)



公式の指示が使用されました

Linuxユーザーは、手動モードで証明書を生成する例として以下のテキストを使用できます。



1.お気に入りのLinuxディストリビューションを実行します(Debian 8を使用しました)。



または2. Gitインストールし 、以下のコマンドを実行します。



git clone https://github.com/letsencrypt/letsencrypt





cd letsencrypt







または2. このアーカイブをダウンロードしてフォルダーに解凍し、このフォルダーに移動します



3.を使用してインストールと生成を実行します



./letsencrypt-auto --agree-dev-preview --server \https://acme-v01.api.letsencrypt.org/directory -a manual auth







今後、予備のメールを入力するよう求められます。

-a手動スイッチを使用すると、キーをWebサーバーに自動的にインストールせずに、手動でキーを生成できます。



4.次に、証明書を作成するドメインを入力します





5. Let's Encrypt logsでアドレスの保存を確認します





6.ドメインの所有権を確認する





2016年9月に、証明書の取得手順に小さな変更がありました。 更新してくれたtoxi_romanに感謝します。



テキスト/プレーンを使用した古い確認方法(2016年10月時点では関係ありません)
これは、手動登録モードで重要な瞬間の1つです。

注: Content-Type text / plainを返すリクエストへの応答を作成するように求められます。



そのような答えは失敗し、確認はエラーを生成します。





次のようにする必要があります。







Windowsにサーバーがある場合(MVCと同様にRazor Viewsをサポート)、正しい答えを作成する最も簡単な方法は次のとおりです。

a).well-knownフォルダーとその中にacme-challengeフォルダーを作成します

b)ファイル[request] .cshtmlをそこに置きます

c)このファイルの内容に次を追加します。

@{Response.ContentType = "text/plain";Response.Charset = "";}







7.検証に成功すると、次の証明書が/ etc / letsencrypt / live / [ドメイン名]フォルダーに作成されます。



privkey.pem-証明書の秘密鍵

SSLCertificateKeyFileにはApache、ssl_certificate_keyにはnginxによって使用されます。



cert.pem (サーバー証明書)

SSLCertificateFileのためにApacheによって使用されます。



chain.pem (チェーン証明書)

また、SSLCertificateChainFileのためにApacheによって使用されます。



fullchain.pem (chain.pemとcert.pemを接続)

ssl_certificateのためにnginxによって使用されます。



7.次に、ネイティブのWindows .pfx形式に変換します。

/ etc / letsencrypt / live / [domain name]フォルダーに移動します(suコマンドを使用して管理者モードでターミナルを開きます)。



cd /etc/letsencrypt/live/[ ]







次のコマンドでOpenSSLを起動します。



openssl







次のコマンドで変換を開始します。



pkcs12 -inkey privkey.pem -in fullchain.pem -export -out mydomain.pfx







パスワードの入力と確認を求められます。







7.2 quitコマンドでOpenSSLを終了する



7.3結果のファイルをユーザーディレクトリにコピーします

cp --no-preserve=all mydomain.pfx /home/( )/Documents







8.証明書mydomain.pfxを受け取りましたこれは、Windows環境で使用できるようになりました。



証明書を手動で更新するには:

./letsencrypt-auto certonly --renew-by-default -a manual







Let's Encrypt証明書は90日間有効であることを知っておくことが重要です。 60日ごとに更新することをお勧めします。 生成用に指定した電子メールは、証明書の有効期限に関する通知を受け取ります。



この記事に対するコメントや提案をお待ちしております。



All Articles