最も可能性が高いのは、Let's Encryptが
https://letsencrypt.orgで無料のSSL証明書を配布していることをすでに認識していることです。 CentOS 7およびNginxを実行しているサーバーでそれを取得して構成する方法は?

はじめに
それを取得しましょう。 Let's Encryptは、無料のTLS / SSl証明書を簡単に取得してインストールできる新しい認証局(CA)であり、Webサーバー上のHTTPSトラフィックを暗号化できます。 このプロセスはletsencryptによってすでに自動化されていますが、残念ながらApache Webサーバーの制御下でのみです。
このチュートリアルでは、Nginx、CentOS 7のSSL証明書を取得する方法を示します。また、証明書は90日間提供されるため、証明書の自動更新も構成します。
手順1-Letsencryptクライアントのインストール
だから私たちが持っているもの:
-CentOS、Nginxを実行しているWebサーバー。
-インストール済みプログラムGit、Bc。
念のため:
sudo yum -y install git bc
gitとbcをインストールした後、GitHubからletsencryptプロジェクトのクローンを作成します。
sudo git clone https://github.com/letsencrypt/letsencrypt /opt/letsencrypt
これで、プロジェクトのコピーが/ opt / letsencryptにあるはずです。
ステップ2-証明書の取得
Letsencryptは、さまざまなプラグインを使用してSSL証明書を取得する多くの方法を提供します。 自動的にインストールされるApacheプラグインとは異なり、証明書を手動でインストールする必要があります。
SSL証明書のインストール
Letsencryptプロジェクトに進み、ファイルのクローンを作成しました。 そして、webrootプラグインを使用したletsencrypt-auto certonlyコマンドで証明書の生成を開始します。
-d example.com -d
www.example.com-ドメイン
--webroot-path = / usr / share / nginx /プロジェクトが置かれているhtmlディレクトリ
cd /opt/letsencrypt ./letsencrypt-auto certonly -a webroot --webroot-path=/usr/share/nginx/html -d example.com -d www.example.com
注:sudoを使用せずにletsencrypt-autoを実行する
letsencryptの初期化後、追加のデータを維持する必要があります。 提案される質問は、以前にletsencryptを使用した期間によって異なる場合がありますが、初めて開始します。
コマンドプロンプトで、情報メッセージに使用される電子メールアドレスを入力します。キーを復元することもできます。

Letsencryptの使用条件に同意します。

すべてがうまくいった場合、コンソールには次のようなものが表示されるはずです。
Output: IMPORTANT NOTES: - If you lose your account credentials, you can recover through e-mails sent to sammy@digitalocean.com - Congratulations! Your certificate and chain have been saved at /etc/letsencrypt/live/example.com/fullchain.pem. Your cert will expire on 2016-03-15. To obtain a new version of the certificate in the future, simply run Let's Encrypt again. - Your account credentials have been saved in your Let's Encrypt configuration directory at /etc/letsencrypt. You should make a secure backup of this folder now. This configuration directory will also contain certificates and private keys obtained by Let's Encrypt so making regular backups of this folder is ideal. - If like Let's Encrypt, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le
作成された証明書/etc/letsencrypt/live/example.com/が保存されている場所と、証明書の有効期限が2016-03-15であることがわかります。
考えられるエラー:
次のようなエラーが表示される場合: DVSNIチャレンジのホストへの接続に失敗しました。TCPトラフィックがポート80および443を通過するようにサーバーのファイアウォールを構成します。
証明書を受け取った後、次のPEMエンコードファイルがあります。
cert.pem:ドメインの証明書
chain.pem:証明書チェーンを暗号化しましょう
fullchain.pem:cert.pemおよびchain.pem
privkey.pem:秘密鍵付きの証明書
セキュリティのレベルをさらに高めるために、Diffie-Hellman暗号化アルゴリズムを使用してキーを生成します。 2048ビットキーを作成するには、次のコマンドを使用します。
sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
これは、Forward Secrecyを獲得するために必要です。 直接秘密とは、第三者がセッションキーを認識すると、このキーによってのみ保護されているデータにのみアクセスできることを意味します。 完全な直接秘密を保持するために、送信されたデータの暗号化に使用されるキーを使用して追加のキーを取得しないでください。
このプロセスには数分かかる場合がありますが、キーが作成されると、/ etc / ssl / certs / dhparam.pemのディレクトリに配置されます。
手順3-Nginx WebサーバーでTLS / SSlを構成するSSl証明書を使用してNginxを構成します。
server {
Nginxを再起動
sudo systemctl reload nginx
ステップ4-自動更新の設定
証明書は90日間有効ですが、60日ごとに証明書を更新することをお勧めします。 これをcronで自動化します。
インストールされているすべてのドメインのアップグレードプロセスを開始するには、次のコマンドを実行します。
/opt/letsencrypt/letsencrypt-auto renew
証明書を最近インストールしたため、チームは有効期限のみを確認し、証明書を更新する必要がないことを通知するメッセージを出力します。 コンソールには次のようなものが表示されます。
Checking for new version... Requesting root privileges to run letsencrypt... /root/.local/share/letsencrypt/bin/letsencrypt renew Processing /etc/letsencrypt/renewal/example.com.conf The following certs are not due for renewal yet: /etc/letsencrypt/live/example.com/fullchain.pem (skipped) No renewals were attempted.
複数のドメインにバンドルされた証明書を作成した場合、基本ドメイン名のみがコンソールに表示されますが、心配しないでください。この証明書に含まれるすべてのドメインが更新されます。
crontabを編集して、証明書が自動的に更新されるようにします。 毎週更新を確認します。 crontabをルートとして編集するには、次のコマンドを実行します。
sudo crontab -e
次の行を追加します。
30 2 * * 1 /opt/letsencrypt/letsencrypt-auto renew >> /var/log/le-renew.log 35 2 * * 1 /usr/bin/systemctl reload nginx
そのようにして、チームは毎週月曜日の2:30にletsencrypt証明書を自動的に更新し、2:35にNginxを再起動するcronを作成します。 すべての更新情報は/var/log/le-renew.logに記録されます。
ステップ5-Let's Encryptの更新(オプション)
Let's Encryptクライアントの新しい更新が利用可能になるたびに、/ opt / letsencryptディレクトリからgit pullを実行してローカルコピーを更新できます。
cd /opt/letsencrypt sudo git pull
これにより、リポジトリから最新の変更がすべてダウンロードされ、Let's Encryptクライアントが更新されます。
フィニッシュ! WebサーバーはTLS / SSL暗号化を使用するようになり、すべて無料です。 HTTPSコンテンツを暗号化して、プライバシーを守りましょう。 また、Googleの検索結果でのサイトの可視性も向上します。
ソース
https://www.digitalocean.com/community/tutorials/how-to-secure-nginx-with-let-s-encrypt-on-centos-7https://habrahabr.ru/post/252821/