<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 16. 使用 acme.sh 安裝 Let’ s Encrypt 提供的免費 SSL 證書 #### 1. 介紹 Let’ s Encrypt已有免費的證書可用,以后的網站估計都要上https的吧,所以把我的網站上的證書換了一下,這節主要是參考[使用 acme.sh 給 Nginx 安裝 Let’ s Encrypt 提供的免費 SSL 證書](https://ruby-china.org/topics/31983)這篇文章,并結合自己的情況,把我的經驗記錄下來。 #### 2. 安裝 我們使用[acme.sh](https://github.com/Neilpang/acme.sh)來申請和管理證書,它很簡單用,還能夠利用crontab自動更新證書,而且是默認就有的功能。 首先安裝。 ``` $ wget -O - https://get.acme.sh | sh ``` 安裝完之后,可以退出登錄,再重新登錄,或者執行一下`source ~/.bashrc`。 之后就可以使用`acme.sh`命令了。 #### 3. 申請證書 首先申請和下載證書。 ``` $ acme.sh --issue -d boat.rails365.net -w /home/hfpp2012/boat_manager/current/public ``` 我要使用的域名是`boat.rails365.net`,我有一個項目是用rails寫的,根目錄為`/home/hfpp2012/boat_manager/current/public`,一定要保證這個目錄是可寫,可訪問的,因為`acme.sh`會去檢測它,其實就是為了驗證,這個網站是不是你的。 這樣申請成功之后,證書也會被保存下來,比如保存在下面這個位置: ``` /home/hfpp2012/.acme.sh/boat.rails365.net ``` 你可以進去看看的,接下來我們要把證書安裝到你的應用中。 ``` $ acme.sh --installcert -d boat.rails365.net \ --keypath /home/hfpp2012/boat_manager/ssl/boat.rails365.net.key \ --fullchainpath /home/hfpp2012/boat_manager/ssl/boat.rails365.net.key.pem \ --reloadcmd "sudo nginx -s reload" ``` 值得注意的是: 1. 會復制一些文件到`--keypath`和`--fullchainpath`參數所指定的地方,所以要保證目錄是通的,是可寫的,一般放到網站根目錄相關的地方,如果你的`/home/hfpp2012/boat_manager`目錄,沒有`ssl`這個目錄,要先新建一個。 2. 證書更新之后,會讓nginx也更新的,因為這些證書是要由nginx使用的,所以要更新,那`acme.sh`會自動去觸發那個更新的命令,所以你得告訴`acme.sh`如何去更新nginx的配置。所以這也是`--reloadcmd`發揮的作用,里面的值,得根據你的系統而定,只要能更新到nginx的配置就好了。 3. 更新nginx配置時,有可以會使用sudo,所以最好你的用戶是可以免密碼使用sudo的。 接下來,還需要再生成一個文件,具體我也不知道有什么用,很多ssl的配置都需要它。 ``` $ openssl dhparam -out /home/hfpp2012/boat_manager/ssl/dhparam.pem 2048 ``` #### 4. nginx配置 最后,把上面所有生成的文件跟nginx結合起來,再把配置寫到nginx的配置文件中。 比如,我是這樣的: ``` upstream boat_manager { server unix:///home/hfpp2012/boat_manager/shared/tmp/sockets/puma.sock fail_timeout=0; } server { listen 443 ssl; server_name boat.rails365.net; ssl_certificate /home/hfpp2012/boat_manager/ssl/boat.rails365.net.key.pem; ssl_certificate_key /home/hfpp2012/boat_manager/ssl/boat.rails365.net.key; # ssl_dhparam ssl_dhparam /home/hfpp2012/boat_manager/ssl/dhparam.pem; root /home/hfpp2012/boat_manager/current/public; keepalive_timeout 70; location ~ ^/assets/ { gzip_static on; expires max; add_header Cache-Control public; } try_files $uri/index.html $uri @boat_manager; location @boat_manager { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; proxy_pass http://boat_manager; #proxy_http_version 1.1; #proxy_set_header Upgrade $http_upgrade; #proxy_set_header Connection "upgrade"; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } server { listen 80; server_name boat.rails365.net; return 301 https://boat.rails365.net$request_uri; } ``` 頂層的http指令那里,也需要加上這兩行: ``` http { ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; } ``` 最后,你把nginx重啟一下,再試試效果。 完結。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看