HTTPSサーバーの構築方法
6641 ワード
サイトがhttpsに変わるのは大勢の赴くところだ.しかし、国内では、推進の過程が海外よりずっと遅いのは明らかだ.
現段階では、自分のサイトをhttpsに変更した後、ページに
apiインタフェースクラスのサイトでは,混在の問題はないので,まずapiバックグラウンドインタフェース部分からhttpsを用いるべきである.(iOSはインタフェースアドレスがhttpsであることを強制しています)
大手プロバイダのSSL証明書は安くないし、大手企業にとっては大したことではないかもしれませんが、小さな会社や個人にとっては高いです.現在海外に登場する無料SSLサービス会社Let’s Encryptは、決して小さな会社や開発者の福音である.△現段階では天朝でも正常に使えるが、将来は分からない.天朝がある日世界のネットワークを自絶すれば、この証明書も閉鎖されるかもしれない.
ここではCentOS 7.0 7.1および6.8 + nginxのLet’s Encryptのインストールと使用に関する完全な手順.
let's encript証明書を申請するには、3つの方法があります. certbotスクリプト を通過 Letencriptをサポートする仮想ホストプロバイダ を介して手動申請manual mode 特別な場合はなくcertbotスクリプト方式が優先されます.
letsencrypt証明書の有効期間は90日しかないので、長期使用が必要な場合は、失効前に延長申請が必要です.certbotスクリプトツールでは、延期申請のスクリプトをタイミングタスクに書き込んで自動的に完了することができ、非常に便利です.
一、前提条件はmydomain.com(国内ホストで使用する場合はICPで登録する必要がある) のドメイン名を持っています.ドメイン名サーバにAレコードを作成し、クラウドホストのパブリックネットワークIPアドレスを指します.例えばdemo.mydomain.comがxxx.xxx.xxx.xxxを指すIPアドレス 新しく作成されたドメイン名の解析がパブリックネットワーク上で解析されるまで待つ必要があります. 国内のドメイン名プロバイダはletsencryptのサポートが非常に悪いと言われていますが、実験の結果、少なくとも現段階でdnspodで解析したドメイン名はまだ問題にぶつかっていません.
二、クラウドホストにnginxサーバーをインストールし、最も基本的な80ポートのngnixサイトを配置する
たとえば、demo.mydomain.comが最も簡単なnginxサイトを迅速に構成すると仮定します. nginxサーバ をインストールする nginxサイト . nginxサービス .ブラウザで
三、certbotツールのインストール
上記のcertbotのインストールに失敗しました.次の方法を使用します.成功したらスキップします.
wget https://dl.eff.org/certbot-auto
chmod a+x certbot-auto
./certbot-auto certonly --email [email protected] --agree-tos --webroot -w/home/wwwroot/cpvideo -d www.bad120.com
次の第4条をスキップする
四、certbotコマンドを使用して初めて証明書を申請する
注意:連絡先emailアドレスは実際に有効であることを記入し、letsencryptは証明書が期限切れになる前に予告された通知メールを送信します.申請が成功すると、次のCongratulations情報が表示されます.
証明書の保存場所:
五、証明書の有効期限を表示するコマンド
表示されているのはグリニッジ時間で、現在のタイムゾーンをどのように表示するか分かりません.
六、タイミングタスク自動更新証明書の設定
letsencrypt証明書の有効期間は90日ですが、スクリプトで更新できます.
注意:証明書を更新するときは、Webサイトにアクセスできる必要があります.
七、応用例:nginxを構成して証明書を使ってhttpsサイトを開通する Perfect Forward Security(PFS)キー値 Perfect Forward Security(PFS)とは何か、中国語で 生成の過程はまだ時間がかかりますから、コーヒーを飲んで休みましょう. はnginxサイト、例えば .ブラウザで を表示できます.
pythonが間違っていたら使用できますhttps://linuxstory.org/deploy-lets-encrypt-ssl-certificate-with-certbot/このシナリオは、証明書の自動更新機能と同様に機能します.
現段階では、自分のサイトをhttpsに変更した後、ページに
http://
のリンクや画像を引用した場合、ユーザーはブラウザで
のようなものを見ることができ、サイト運営者にとって非常に冤罪と言える.多くのリンクはサードパーティ製なので、制御できません.apiインタフェースクラスのサイトでは,混在の問題はないので,まずapiバックグラウンドインタフェース部分からhttpsを用いるべきである.(iOSはインタフェースアドレスがhttpsであることを強制しています)
大手プロバイダのSSL証明書は安くないし、大手企業にとっては大したことではないかもしれませんが、小さな会社や個人にとっては高いです.現在海外に登場する無料SSLサービス会社Let’s Encryptは、決して小さな会社や開発者の福音である.△現段階では天朝でも正常に使えるが、将来は分からない.天朝がある日世界のネットワークを自絶すれば、この証明書も閉鎖されるかもしれない.
ここではCentOS 7.0 7.1および6.8 + nginxのLet’s Encryptのインストールと使用に関する完全な手順.
let's encript証明書を申請するには、3つの方法があります.
letsencrypt証明書の有効期間は90日しかないので、長期使用が必要な場合は、失効前に延長申請が必要です.certbotスクリプトツールでは、延期申請のスクリプトをタイミングタスクに書き込んで自動的に完了することができ、非常に便利です.
一、前提条件
二、クラウドホストにnginxサーバーをインストールし、最も基本的な80ポートのngnixサイトを配置する
たとえば、demo.mydomain.comが最も簡単なnginxサイトを迅速に構成すると仮定します.
yum install -y nginx
mkdir /opt/www/demo.mydomain.com -p
chown nginx:nginx /opt/www/demo.mydomain.com/ -R
vi /etc/nginx/conf.d/demo.mydomain.com.conf
を構成し、以下の内容をファイルにコピーするserver { listen 80; server_name demo.mydomain.com; charset utf-8; root /opt/www/demo.mydomain.com; index index.html index.htm; access_log /var/log/nginx/demo.mydomain.com_access.log; error_log /var/log/nginx/demo.mydomain.com_error.log; }
systemctl start nginx
を開始注意:CentOSサーバが80ポートおよび443ポートをオープンしていることを確認するhttp://demo.mydomain.com
へのアクセスを確認 ページがない場合は、通常403エラーが表示されるはずです.nginxサイトの構成が完了しました.三、certbotツールのインストール
yum install -y epel-release
yum install -y certbot
上記のcertbotのインストールに失敗しました.次の方法を使用します.成功したらスキップします.
wget https://dl.eff.org/certbot-auto
chmod a+x certbot-auto
./certbot-auto certonly --email [email protected] --agree-tos --webroot -w/home/wwwroot/cpvideo -d www.bad120.com
次の第4条をスキップする
四、certbotコマンドを使用して初めて証明書を申請する
# :certbot certonly --webroot -w [Web ] -d [ ] -m [ email ] --agree-tos
certbot certonly --webroot -w /opt/www/demo.mydomain.com -d demo.mydomain.com -m [email protected] --agree-tos
注意:連絡先emailアドレスは実際に有効であることを記入し、letsencryptは証明書が期限切れになる前に予告された通知メールを送信します.申請が成功すると、次のCongratulations情報が表示されます.
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at
/etc/letsencrypt/live/[xxx.xxx.xxx]/fullchain.pem. Your cert will
expire on 2017-03-20. To obtain a new or tweaked version of this
certificate in the future, simply run certbot again. To
non-interactively renew *all* of your certificates, run "certbot
renew"
- If you like Certbot, 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/demo.mydomain.com/
cert.pem -> ../../archive/demo.mydomain.com/cert1.pem chain.pem -> ../../archive/demo.mydomain.com/chain1.pem , chain.pem + cert.pem fullchain.pem -> ../../archive/demo.mydomain.com/fullchain1.pem privkey.pem -> ../../archive/demo.mydomain.com/privkey1.pem
五、証明書の有効期限を表示するコマンド
openssl x509 -noout -dates -in /etc/letsencrypt/live/[demo.mydomain.com]/cert.pem
表示されているのはグリニッジ時間で、現在のタイムゾーンをどのように表示するか分かりません.
六、タイミングタスク自動更新証明書の設定
letsencrypt証明書の有効期間は90日ですが、スクリプトで更新できます.
# certbot renew --dry-run
# , certbot renew --quiet
注意:証明書を更新するときは、Webサイトにアクセスできる必要があります.
# crontab , :
# 1 5 , nginx
00 05 01 * * /usr/bin/certbot renew --quiet && /bin/systemctl restart nginx
七、応用例:nginxを構成して証明書を使ってhttpsサイトを開通する
mkdir /etc/ssl/private/ -p cd /etc/ssl/private/
openssl dhparam 2048 -out dhparam.pem
を生成
と訳されていますが、どちらかというとここ数年で提唱されたセキュリティ強化の技術です.このキー値がローカルで生成されていない場合は、まず生成命令を実行する必要があります./etc/nginx/conf.d/demo.mydomain.com.conf
を構成し、サンプルの内容は以下の通りである:server { listen 80; server_name demo.mydomain.com; rewrite ^ https://$server_name$request_uri? permanent; } server { listen 443 ssl; server_name demo.mydomain.com; charset utf-8; root /opt/www/demo.mydomain.com; index index.html index.htm; access_log /var/log/nginx/demo.mydomain.com_access.log; error_log /var/log/nginx/demo.mydomain.com_error.log; # letsencrypt ssl_certificate /etc/letsencrypt/live/demo.mydomain.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/demo.mydomain.com/privkey.pem; ssl_session_timeout 1d; ssl_session_cache shared:SSL:50m; ssl_session_tickets on; ssl_dhparam /etc/ssl/private/dhparam.pem; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # ssl_ciphers : https://wiki.mozilla.org/Security/Server_Side_TLS ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128:AES256:AES:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK'; ssl_prefer_server_ciphers on; }
http://demo.mydomain.com
を開き、正常にhttps://demo.mydomain.com
にジャンプすれば成功します.chromeブラウザであれば、アドレスバーで小さなロックのアイコンをクリックすると、証明書の詳細pythonが間違っていたら使用できますhttps://linuxstory.org/deploy-lets-encrypt-ssl-certificate-with-certbot/このシナリオは、証明書の自動更新機能と同様に機能します.