摘要:證書生成完畢后,可以在中找到四配置當用訪問時重定向至重啟服務,即可使用訪問該網站五其他自動更新證書證書只有天的有效期,所以在證書到期之前,我們需要重新獲取這些證書,可以使用這個命令。
一、Nginx基礎
Nginx是一款輕量級的Web服務器、反向代理服務器及電子郵件(IMAP/POP3)代理服務器。
正向代理服務器:一般作用在客戶端,位于客戶端和服務器之間,客戶端發送請求到代理,代理將請求發送到服務器,服務器返回的響應也經由代理到客戶端。客戶端必須要進行一些特別的設置才能使用正向代理,正向代理允許客戶端通過它訪問任意網站并且隱藏客戶端自身。
反向代理服務器:作用在服務器端,它在服務器端接收客戶端的請求,然后將請求分發給具體的服務器進行處理,然后再將服務器的相應結果反饋給客戶端。
二、Https基礎Http(超文本傳輸協議)被用于瀏覽器和web 服務器之間傳遞消息,http協議以明文方式發送內容,不提供任何方式的數據加密,因此攻擊者可以截取傳輸報文獲取信息。
為了數據傳輸的安全,在http的基礎上加入了ssl協議就成了https協議,ssl依靠證書來驗證服務器的身份,并為瀏覽器和服務器之間的通信加密。
SSL協議位于TCP/IP協議與各種應用層協議之間,可分為兩層:
(1)SSL記錄協議(SSL Record Protocol):它建立在可靠的傳輸協議(如TCP)上,為高層協議提供數據封裝、壓縮、加密等基本功能的支持。
(2)SSL握手協議(SSL Handshake Protocol):它建立在SSL記錄協議上,用于在實際的數據傳輸開始前,通訊雙方進行身份驗證、協商加密算法、交換加密密鑰等。
采用Https的服務器必須從證書頒發機構CA(Certificate Authority)申請一個用于證明服務器用途類型的證書,有收費的也有免費的,也可以通過OpenSSL自己造一個證書,不過瀏覽器是不信任你自己造的證書的,在訪問時,會提醒”您的連接不是私密連接“,在這我們使用的是Let"s Encrypt免費證書。
(1) 安裝Let"s Encrypt推薦獲取證書的客戶端 Certbot
sudo apt-get install certbot
(2)獲取證書(兩種模式)
--webroot模式
certbot certonly --webroot /var/www/example -d example.com -d www.example.com
這個命令會為 example.com 和 www.example.com 這兩個域名生成一個證書,會在 /var/www/example 中創建 .well-known 文件夾,這個文件夾里面包含了一些驗證文件,certbot 會通過訪問 example.com/.well-known/acme-challenge 來驗證你的域名是否綁定的這個服務器。
--standalone模式
certbot certonly --standalone -d example.com -d www.example.com
這種模式不需要指定網站根目錄,他會自動啟用服務器的443端口來驗證域名的歸屬,所以如果有其他服務(如nginx)占用了443端口sudo lsof -n -P|grep:443,需要先停止這些服務,在證書生成完畢后,再啟用。
證書生成完畢后,可以在/etc/letsencrypt/live/example.com中找到
四、Nginx配置server { listen 443; server_name example.com www.example.com; ssl on; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; location / { proxy_pass http://localhost:port/; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_read_timeout 600; gzip on; gzip_disable "MSIE [1-6].(?!.*SV1)"; client_max_body_size 10M; gzip_vary on; gzip_proxied any; gzip_comp_level 6; gzip_buffers 16 8k; gzip_http_version 1.1; gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript; } } server{ //當用http://...訪問時重定向至https://... listen 80; server_name example.com www.example.com; return 301 https://www.example.com; }
重啟Nginx服務,即可使用https://www.example.com訪問該網站
五、其他let"s Encrypt證書只有90天的有效期,所以在證書到期之前,我們需要重新獲取這些證書,可以使用certbot renew這個命令。(如果生成證書時使用--standalone模式,更新證書時也要暫停當前443端口運行的程序)
詳見:Nginx配置文件(nginx.conf)配置詳解
先用sudo nginx -t檢測下配置文件,再看下錯誤日志,之后Google。
詳見:Nginx常見錯誤與解決辦法
開啟Nginx服務 sudo nginx -c /path/to/nginx.conf
重啟Nginx sudo nginx -s reload
檢測nignx配置 sudo nginx -t
暫停nginx服務
ps -ef|grep nginx 查看nginx占用的進程
sudo kill -QUIT 28478 (28478為nginx的主進程號)
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/39683.html
摘要:由于上面我們已經新建了一個配置文件,這里就直接將反向代理的配置寫在里面通過配置,我們反向代理到了端口的服務。六最后本文中,我們學習了如何通過快速搭建環境,并對其配置證書和反向代理,讓網站能夠以協議來訪問。 歡迎關注個人微信公眾號: 小哈學Java, 每日推送 Java 領域干貨文章,關注即免費無套路附送 100G 海量學習、面試資源喲!!個人網站: https://www.except...
摘要:選擇域名授權驗證方式,您需要到您的域名解析服務商如萬網新網等提供的系統中進行配置。例如,您的域名托管在阿里云,則需要到云解析控制臺進行相關配置。生成之后的域名驗證,在域名解析管理可以看到。 最近在升級交流學習社區,覺得有必要升級成https.以下是自己在升級中記錄。 以下包括以下部分: 一、阿里云免費購買SSL證書 1、自己在阿里云申請了免費的,然后自己支付0元,購買了SSL證書 2、...
摘要:選擇域名授權驗證方式,您需要到您的域名解析服務商如萬網新網等提供的系統中進行配置。例如,您的域名托管在阿里云,則需要到云解析控制臺進行相關配置。生成之后的域名驗證,在域名解析管理可以看到。 最近在升級交流學習社區,覺得有必要升級成https.以下是自己在升級中記錄。 以下包括以下部分: 一、阿里云免費購買SSL證書 1、自己在阿里云申請了免費的,然后自己支付0元,購買了SSL證書 2、...
閱讀 3403·2021-11-24 09:38
閱讀 3189·2021-11-22 09:34
閱讀 2098·2021-09-22 16:03
閱讀 2349·2019-08-29 18:37
閱讀 371·2019-08-29 16:15
閱讀 1761·2019-08-26 13:56
閱讀 853·2019-08-26 12:21
閱讀 2198·2019-08-26 12:15