zoukankan      html  css  js  c++  java
  • 免費把網頁升級至HTTPs!Let's Encrypt + Nginx的SSL安裝教學

    Let’s Encrypt已經推出一段時間了,它是一個多方認可的HTTP加密服務,而且還是免費的,這下我們不用再支付昂貴的年費了!

    為麼要用SSL?

    • SSL幫助加密你的網頁傳輸,防止資料外流
    • 讓瀏覽器信任你的網頁
    • 付費系統等等必須使用SSL
    • 現在都免費了,還在考慮甚麼…

    Let’s Encrypt的限制

    • 因為加密了所以速度比較慢,這是HTTPs的缺點
    • 90天要更新一次證書

    一﹒安裝certbot

    這裡就介紹常用的Ubuntu + Nginx的安裝方法,其實就只是根據官方供的certbot的指示做,但還是簡單講一下吧 首先來安裝letsencrypt

    sudo apt-get install letsencrypt
    

    然後就是生產證書,把以下的指令修改成你的網域和網頁的根目錄,假設你的網域是example,根目錄是/var/www/example

    letsencrypt certonly --webroot -w /var/www/example -d example.com -d www.example.com
    

    上面指令將會在/etc/letsencrypt/live/example.com/產生四個檔案

    • cert.pem
    • chain.pem
    • fullchain.pem
    • privkey.pem

    二﹒設定Nginx

    我們把本來使用的port 80換成port 443,然後加入fullchain.pemprivkey.pem兩張證書,就像這樣

    server {
        listen *:443 ssl http2;
        listen [::]:443 ssl http2;
    
        ssl_certificate /etc/letsencrypt/live/example.com/ful 大专栏  免費把網頁升級至HTTPs!Let's Encrypt + Nginx的SSL安裝教學lchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    
        root /var/www/example;
    
        ...
    }
    

    然後我們可以選擇把所有http的請求自動轉到https

    server {
        listen 80 default_server;
        listen [::]:80 default_server;
        server_name example.com www.example.com;
        return 301 https://$server_name$request_uri;
    }
    

    最後從新載入nginx的設定就大功告成了!

    sudo systemctl reload nginx
    

    自動更新證書

    由於Let’s Encrypt的限制,證書需要每90天更新一次,所以certbot很貼心地提供了一個更新的指令讓我們使用,而且也建議我們用cron或是systemd每天檢查兩次,我們不用擔心更新過多的問題,因為快到期之前即使運行了指令它也是不會更新的,所以我們可以每天的1AM和1PM各檢查更新一次,這樣就做到自動更新的效果了

    這裡我選擇用crontab

    sudo crontab -e
    

    初次使用應該會出現以下畫面,個人習慣用nano,所以選2

    no crontab for root - using an empty one
    
    Select an editor.  To change later, run 'select-editor'.
      1. /bin/ed
      2. /bin/nano        <---- easiest
      3. /usr/bin/vim.basic
      4. /usr/bin/vim.tiny
    
    Choose 1-4 [2]:
    

    選擇以後會跳到編輯版面,在最下面輸入以下語句

    10 1,13 * * * /usr/bin/letsencrypt renew >> /var/log/le-renew.log
    15 1,13 * * * /etc/init.d/nginx reload
    

    最後按Ctrl + X儲存後系統便會依據時間自動執行了!

  • 相关阅读:
    html页面模板布局内容的继承,block
    url分发
    显示年月,注册页面和后台数据交互,不涉及数据库
    static文件夹中文件引用方式,如html页面引用js
    pycharm写django之返回一个页面
    pycharm编写django第一步
    VUE清除keepalive页面缓存
    js设置html根节点的style字体【Vue动态调整全局字体大小】
    npm 依赖重新安装或更新版本
    antd 自定义表头slots.title不生效
  • 原文地址:https://www.cnblogs.com/lijianming180/p/12389142.html
Copyright © 2011-2022 走看看