校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識(shí)庫 > 為docker中的nginx配置https的方法步驟

為docker中的nginx配置https的方法步驟

熱門標(biāo)簽:云會(huì)外呼系統(tǒng) 智能電話機(jī)器人坐席 申請400電話價(jià)格多少 安陽ai電銷機(jī)器人軟件 柳州市機(jī)器人外呼系統(tǒng)報(bào)價(jià) 外呼系統(tǒng)不彈窗 外呼系統(tǒng)的經(jīng)營范圍 涪陵商都400電話開通辦理 廈門營銷外呼系統(tǒng)平臺(tái)

沒有 https 加持的網(wǎng)站會(huì)逐漸地被瀏覽器標(biāo)記為不安全的,所以為網(wǎng)站添加 https 已經(jīng)變得刻不容緩。對于商業(yè)網(wǎng)站來說,花錢購買 SSL/TLS 證書并不是什么問題。但對于個(gè)人用戶來說,如果能有免費(fèi)的 SSL/TLS 證書可用將會(huì)是非常幸福的事情!Let's Encrypt 就是一個(gè)提供免費(fèi) SSL/TLS 證書的網(wǎng)站,由于其證書期限只有三個(gè)月,所以需要我們用自動(dòng)化的方式去更新證書。本文將介紹如何為通過 docker 運(yùn)行的 nginx 中的站點(diǎn)添加 https 支持,并自動(dòng)完成證書的更新。本文的演示環(huán)境為:運(yùn)行在 Azure 上的 Ubuntu 16.04 主機(jī)(此圖來自互聯(lián)網(wǎng)):

準(zhǔn)備環(huán)境

在 Azure 上創(chuàng)建 Ubuntu 類型的虛機(jī)事件非常容易的事情,安裝 docker 也無須贅言。比較容易忽略的是配置合適的網(wǎng)絡(luò)安全組規(guī)則,比如打開 80 和 443 端口:

還有就是配置 DNS:

創(chuàng)建一個(gè)普通的 http 站點(diǎn)

簡單起見,直接使用一個(gè)鏡像中的 nodejs 應(yīng)用作為 web 站點(diǎn):

$ docker pull ljfpower/nodedemo
$ docker network create -d bridge webnet
$ docker run -d --restart=always --expose=3000 \

   --network=webnet --name=myweb \

   ljfpower/nodedemo

在用戶的家目錄下創(chuàng)建 nginx 目錄及其子目錄 conf.d、conf.crt 和 html,創(chuàng)建 logs 目錄及其子目錄 nginx 和 letsencrypt:

$ mkdir -p nginx/{conf.d,conf.crt,html}
$ mkdir -p logs/{nginx,letsencrypt}

說明,本文演示的示例中需要我們手動(dòng)創(chuàng)建的文件和目錄結(jié)構(gòu)如下:

創(chuàng)建 nginx/nginx.conf 文件,內(nèi)容如下:

user nginx;
worker_processes auto;

error_log /var/log/nginx/error.log warn;
pid  /var/run/nginx.pid;

events {
 worker_connections 2048;
}

http {
 include  /etc/nginx/mime.types;
 default_type application/octet-stream;

 sendfile  on;
 keepalive_timeout 65;
 client_max_body_size 10M;

 include /etc/nginx/conf.d/*.conf;
}

然后創(chuàng)建 nginx/conf.d/default.conf 文件,內(nèi)容如下:

upstream web{
 server myweb:3000;
}
server {
 listen  80;
 listen  [::]:80;
 server_name filterinto.com www.filterinto.com;

 location ^~ /.well-known/acme-challenge/ {
  default_type "text/plain";
  root /usr/share/nginx/html;
 }
 location = /.well-known/acme-challenge/ {
  return 404;
 }
 location / {
  proxy_pass http://web;
 }
}

其中 /.well-known/acme-challenge/ 目錄是 certbot 工具在生成證書時(shí)創(chuàng)建的。接下來創(chuàng)建文件 nginx/html/index.html 文件,內(nèi)容如下:

<!DOCTYPE html>
<html>
<head>
 <meta charset="utf-8" />
 <title>Let's Encrypt First Time Cert Issue Site</title>
</head>
<body>
 <h1>Hello HTTPS!</h1>
 <p>
  Just used for the very first time SSL certificates are issued by Let's Encrypt's
  certbot.
 </p>
</body>
</html>

這個(gè)頁面也是 certbot 在生成證書時(shí)需要用到的。最后讓我們啟動(dòng)容器(在用戶的家目錄下執(zhí)行下面的命令):

$ docker run -d \

 -p 80:80 \

 -v $(pwd)/nginx/conf.d:/etc/nginx/conf.d:ro \

 -v $(pwd)/nginx/nginx.conf:/etc/nginx/nginx.conf:ro \

 -v $(pwd)/logs/nginx:/var/log/nginx \

 -v $(pwd)/nginx/html:/usr/share/nginx/html \

 --restart=always \

 --name=gateway \

 --network=webnet \

 nginx:1.14

注意:這時(shí)沒有映射 443 端口,也沒有掛載存放證書的目錄。只能以 http 協(xié)議訪問訪問我們的站點(diǎn):

為站點(diǎn)生成 SSL/TLS 證書

Let's Encrypt 是一個(gè)提供免費(fèi) SSL/TLS 證書的網(wǎng)站,它為用戶提供了 certbot 工具用來生成 SSL/TLS 證書。方便起見,我們把 certbot 簡單的封裝到容器中。在用戶的家目錄下創(chuàng)建 certbot 目錄,進(jìn)入 certbot 目錄并把下面的內(nèi)容保存到 Dockerfile 文件中:

FROM alpine:3.4
RUN apk add --update bash certbot
VOLUME ["/etc/letsencrypt"]

然后執(zhí)行下面的命令創(chuàng)建 certbot 鏡像:

$ docker build -t certbot:1.0 .

然后在 certbot 目錄下創(chuàng)建自動(dòng)更新證書的腳本 renew_cert.sh,內(nèi)容如下:

#!/bin/bash
WEBDIR="$1"
LIST=('filterinto.com' 'www.filterinto.com')
LED_LIST=()
WWW_ROOT=/usr/share/nginx/html
for domain in ${LIST[@]};do
 docker run \

  --rm \

  -v ${WEBDIR}/nginx/conf.crt:/etc/letsencrypt \

  -v ${WEBDIR}/logs/letsencrypt:/var/log/letsencrypt \

  -v ${WEBDIR}/nginx/html:${WWW_ROOT} \

  certbot:1.0 \

  certbot certonly --verbose --noninteractive --quiet --agree-tos \

  --webroot -w ${WWW_ROOT} \

  --email="nick.li@grapecity.com" \

  -d "$domain"
 CODE=$?
 if [ $CODE -ne 0 ]; then
  FAILED_LIST+=($domain)
 fi
done

# output failed domains
if [ ${#FAILED_LIST[@]} -ne 0 ];then
 echo 'failed domain:'
 for (( i=0; i<${#FAILED_LIST[@]}; i++ ));
 do
  echo ${FAILED_LIST[$i]}
 done
fi

在用戶的家目錄中執(zhí)行 ./renew_cert.sh /home/nick 命令就可以生成新的證書(/home/nick 為當(dāng)前用戶的家目錄)。生成的證書被保存在 /home/nick/nginx/conf.crt/live 目錄下,以域名命名的目錄下保存著該域名的證書:

然后去檢查下 nginx/html 目錄,發(fā)現(xiàn)多了一個(gè)隱藏的 .well-known 目錄,這個(gè)目錄就是在生成證書時(shí)創(chuàng)建的:

有了 SSL/TLS 證書,接下來我們就可以配置 https 站點(diǎn)了。

為站點(diǎn)配置 SSL/TLS 證書

有了 SSL/TLS 證書,接下來更新 nginx 的配置文件就可以了,更新 nginx/conf.d/default.conf 的內(nèi)容如下:

upstream web{
 server myweb:3000;
}

server {
 listen  80;
 listen  [::]:80;
 server_name filterinto.com www.filterinto.com;

 location ^~ /.well-known/acme-challenge/ {
  default_type "text/plain";
  root /usr/share/nginx/html;
 }
 location = /.well-known/acme-challenge/ {
  return 404;
 }
 return 301 https://$server_name$request_uri;
}
server {
 listen  443;
 listen  [::]:443;
 server_name filterinto.com;

 # enable ssl
 ssl      on;
 ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
 ssl_prefer_server_ciphers on;
 ssl_ciphers    "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH EDH+aRSA !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS !RC4";

 # config ssl certificate
 ssl_certificate   conf.crt/live/filterinto.com/fullchain.pem;
 ssl_certificate_key  conf.crt/live/filterinto.com/privkey.pem;

 location ^~ /.well-known/acme-challenge/ {
  default_type "text/plain";
  root /usr/share/nginx/html;
 }
 location = /.well-known/acme-challenge/ {
   return 404;
 }
 location / {
  proxy_pass http://web;
 }
}
server {
 listen  443;
 listen  [::]:443;
 server_name www.filterinto.com;

 # enable ssl
 ssl      on;
 ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
 ssl_prefer_server_ciphers on;
 ssl_ciphers    "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH EDH+aRSA !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS !RC4";

 # config ssl certificate
 ssl_certificate   conf.crt/live/www.filterinto.com/fullchain.pem;
 ssl_certificate_key  conf.crt/live/www.filterinto.com/privkey.pem;

 location ^~ /.well-known/acme-challenge/ {
  default_type "text/plain";
  root /usr/share/nginx/html;
 }
 location = /.well-known/acme-challenge/ {
   return 404;
 }
 location / {
  proxy_pass http://web;
 }
}

然后刪除容器 gateway 并用下面的腳本重新創(chuàng)建:

$ docker run -d \

 -p 80:80 \

 -p 443:443 \

 -v $(pwd)/nginx/conf.d:/etc/nginx/conf.d:ro \

 -v $(pwd)/nginx/conf.crt:/etc/nginx/conf.crt:ro \

 -v $(pwd)/nginx/nginx.conf:/etc/nginx/nginx.conf:ro \

 -v $(pwd)/logs/nginx:/var/log/nginx \

 -v $(pwd)/nginx/html:/usr/share/nginx/html \

 --restart=always \

 --name=gateway \

 --network=webnet \

 nginx:1.14

現(xiàn)在就只能通過 https 來訪問站點(diǎn)了:

自動(dòng)更新證書

Let's Encrypt 提供的 SSL/TLS 證書期限只有三個(gè)月,每過三個(gè)月要手動(dòng)更新一次證書也夠嗆的,下面我們介紹自動(dòng)更新證書的方法。

其實(shí)我們的配置已經(jīng)為自動(dòng)化更新證書提供了最大的便利(其實(shí)是使用 docker 帶來的便利),在定時(shí)任務(wù)中添加下面兩條記錄就可以了:

0 0 1 * * /home/nick/certbot/renew_cert.sh /home/nick >> /home/nick/logs/cert.log 2>> /home/nick/logs/cert.error.log
0 1 1 * * docker exec gateway nginx -s reload

每月 1 號(hào)的 0 點(diǎn)更新證書,一個(gè)小時(shí)后 reload nginx 的配置。

總結(jié)

Let's Encrypt 是一個(gè)非常棒的網(wǎng)站,對于初學(xué)者和個(gè)人來說,能夠幫助我們輕松的實(shí)現(xiàn) HTTPS 站點(diǎn)(還是免費(fèi)的)!在方便的同時(shí),其隱患也是顯而易見的:既然誰都可以無門檻的獲得 SSL/TLS 證書,那么非法網(wǎng)站也可以通過它把自己偽裝成看上去合法的站點(diǎn)。 所以千萬不要片面的認(rèn)為 HTTPS 站點(diǎn)就是安全的!

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

標(biāo)簽:巴中 福州 南充 綏化 蕪湖 晉城 撫順 孝感

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《為docker中的nginx配置https的方法步驟》,本文關(guān)鍵詞  為,docker,中的,nginx,配置,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《為docker中的nginx配置https的方法步驟》相關(guān)的同類信息!
  • 本頁收集關(guān)于為docker中的nginx配置https的方法步驟的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    欧美三级三级三级爽爽爽| 91精品国产综合久久久久| 精品国产一区二区三区av性色| 成人欧美一区二区三区黑人麻豆 | 国产精品自拍av| 欧美福利视频导航| 午夜精品久久久久久久99樱桃| 91啦中文在线观看| www久久精品| 国产黑丝在线一区二区三区| 久久久五月婷婷| 国产乱码精品一区二区三区五月婷| 日韩亚洲欧美在线观看| 欧美a级理论片| 国产亚洲综合在线| 成人午夜电影网站| 亚洲免费资源在线播放| 欧美在线视频你懂得| 午夜精品一区二区三区三上悠亚| 欧美精品亚洲一区二区在线播放| 亚洲影视在线观看| 精品福利一区二区三区免费视频| 国产麻豆精品theporn| 一卡二卡欧美日韩| 日韩精品一区二区三区三区免费| 国产一区二区美女诱惑| 国产精品不卡在线观看| 欧美一区二区视频在线观看2020| 经典三级一区二区| 亚洲午夜私人影院| 国产亚洲成av人在线观看导航 | 色综合久久久久综合| 午夜精品久久一牛影视| 国产欧美日韩在线| 日韩午夜电影在线观看| 99视频国产精品| 国产一区二区三区久久久 | 日精品一区二区| 中文字幕一区二区三区四区不卡 | 在线播放91灌醉迷j高跟美女 | 欧美老肥妇做.爰bbww视频| 国产91高潮流白浆在线麻豆| 日本中文一区二区三区| 一二三区精品视频| 亚洲视频一二三| 国产精品精品国产色婷婷| 精品国产百合女同互慰| 日韩一区二区麻豆国产| 欧美日韩国产高清一区二区| 91久久香蕉国产日韩欧美9色| 成人妖精视频yjsp地址| 国产成人免费网站| 国产精品一区二区久久精品爱涩| 美女被吸乳得到大胸91| 日韩国产在线观看| 久久精品久久综合| 麻豆一区二区99久久久久| 免费看黄色91| 韩国在线一区二区| kk眼镜猥琐国模调教系列一区二区| 国内精品久久久久影院薰衣草| 韩日av一区二区| 成人av第一页| 欧美色涩在线第一页| 51精品秘密在线观看| 日韩欧美三级在线| 国产精品素人视频| 中文字幕在线不卡| 日韩精品亚洲专区| 国产精品系列在线观看| 色综合久久88色综合天天6| 欧美一级黄色大片| 亚洲综合色丁香婷婷六月图片| 亚洲国产成人私人影院tom| 欧美一级高清片| 欧美日韩精品免费观看视频 | 色综合av在线| 国产麻豆日韩欧美久久| 麻豆成人综合网| 国产999精品久久| 在线观看一区日韩| 久久久蜜桃精品| 伊人夜夜躁av伊人久久| 日韩电影在线观看电影| 成人午夜电影网站| 91麻豆精品91久久久久同性| 国产精品麻豆视频| 久久精品国产成人一区二区三区| 91色九色蝌蚪| 日韩一区二区三区电影在线观看| 亚洲桃色在线一区| 国产一区二区福利视频| 欧美xxxxx牲另类人与| 午夜精品福利久久久| 色婷婷av一区二区| 国产精品女主播在线观看| 国产一区二区精品久久99 | 午夜电影一区二区| 在线观看免费成人| 亚洲图片激情小说| 日本韩国一区二区三区视频| 国产精品高潮久久久久无| 高清日韩电视剧大全免费| 久久亚洲欧美国产精品乐播| 极品尤物av久久免费看| 精品乱码亚洲一区二区不卡| 人人狠狠综合久久亚洲| 91麻豆精品国产91| 国产真实乱子伦精品视频| 久久伊人蜜桃av一区二区| 精品一区二区免费看| 久久亚洲一级片| 99久久久久久| 午夜视频在线观看一区二区三区| 69久久99精品久久久久婷婷| 青娱乐精品视频| 国产日韩欧美制服另类| 91在线播放网址| 午夜久久电影网| 久久综合九色欧美综合狠狠 | 99re在线视频这里只有精品| 亚洲精品国产视频| 26uuu成人网一区二区三区| 粉嫩久久99精品久久久久久夜| 亚洲激情一二三区| 欧美大胆人体bbbb| 国产成a人无v码亚洲福利| 1000精品久久久久久久久| 精品视频一区二区三区免费| 国产一区二区三区久久久| 亚洲一区二区三区四区的| 国产亚洲欧美一区在线观看| 精品视频在线免费观看| 成人av中文字幕| 免费成人美女在线观看| 亚洲男人的天堂av| 国产调教视频一区| 久久众筹精品私拍模特| 欧美日韩国产一区| 欧美中文字幕亚洲一区二区va在线 | 国内外成人在线| 美国一区二区三区在线播放| 亚洲一区在线免费观看| 亚洲欧洲日韩一区二区三区| 久久久亚洲国产美女国产盗摄 | 精品国产成人在线影院| 欧美一区二区三区在线看| 欧美性大战久久久久久久| 国产成a人亚洲精| 成人免费电影视频| 国产成人无遮挡在线视频| 国产成人精品一区二区三区四区 | 欧美一区二区免费视频| 在线电影院国产精品| 3d动漫精品啪啪| 日韩精品一区二区三区中文精品| 欧洲一区二区三区在线| 欧美日韩国产欧美日美国产精品| 91免费观看国产| 欧美性色综合网| 欧美精品免费视频| 欧美成人在线直播| 国产精品剧情在线亚洲| 奇米精品一区二区三区在线观看一| 中文字幕av一区二区三区| xf在线a精品一区二区视频网站| 丁香另类激情小说| proumb性欧美在线观看| 男女性色大片免费观看一区二区| 日产国产高清一区二区三区| 亚洲一区免费在线观看| 伊人色综合久久天天| 日韩一区精品视频| 激情综合五月婷婷| 欧美中文字幕一区二区三区亚洲| 欧美性猛片xxxx免费看久爱| 精品国产免费视频| 中文字幕一区二区三区色视频| 亚洲精品网站在线观看| 香蕉久久一区二区不卡无毒影院| 国产一区二区0| 欧美日韩国产美女| 国产精品成人免费精品自在线观看| 国产精品不卡一区二区三区| 亚洲影视在线观看| 不卡在线视频中文字幕| 911精品产国品一二三产区| 国产肉丝袜一区二区| 久久精品国产精品亚洲精品| 色94色欧美sute亚洲线路二 | 欧美精品乱码久久久久久| 国产精品亲子伦对白| 一区二区三区日韩精品视频| 丁香婷婷综合网| 26uuu精品一区二区在线观看| 亚洲成人av一区| 欧美性高清videossexo| 亚洲一区二区三区四区的| eeuss鲁片一区二区三区| 亚洲国产精华液网站w|