http公升級到https需要在nginx的配置中加入證書資訊,查詢資料後確定生成證書兩種方案
//確定是否安裝openssl
which openssl
//如果沒有安裝,通過apt-get或者yum等方式安裝即可
sudo apt-get install openssl
//生成乙個名為「ssl.key」的 rsa key檔案:執行結果:生成ssl.pass.key 和 ssl.key
openssl genrsa -des3 -passout pass:x -out ssl.pass.key 2048
openssl rsa -passin pass:x -in ssl.pass.key -out ssl.key
//刪除中間檔案
rm ssl.pass.key
接著,利用已經生成的 ssl.key 檔案,進一步生成 ssl.csr 檔案:
openssl req -new -key ssl.key -out ssl.csr
執行此行命令會提示輸入密碼,按回車即可,因為前面我們在生成 ssl.key 時選擇了密碼留空。
最後我們利用前面生成的 ssl.key 和 ssl.csr 檔案來生成 ssl.crt 檔案,也就是自簽名的 ssl 證書檔案:
openssl x509 -req -days 365 -in ssl.csr -signkey ssl.key -out ssl.crt
這一步之後,我們得到乙個自簽名的 ssl 證書檔案 ssl.crt,有效期為 365 天。此時,ssl.csr 檔案也已經不再被需要,可以刪除掉了:
rm ssl.csr
let's encrypt 簡介
如果要啟用https,我們就需要從證書授權機構(以下簡稱ca) 處獲取乙個證書,let's encrypt 就是乙個 ca。我們可以從 let's encrypt 獲得**網域名稱的免費的證書。
certbot 簡介
certbot 是let's encrypt官方推薦的獲取證書的客戶端,可以幫我們獲取免費的let's encrypt 證書。
最好是根據****來處理:
2. 生成免費證書
官方文件有比較詳細的說明,根據自己的情況來選擇
docs/using.html
注意:官方限制了每週的申請次數,如果你進行開發測試,生成證書的時候加上 --staging引數,這樣就不必太擔心數量的限制了
下面介紹幾種方法
無論哪一種方法,實質都是驗證你是不是擁有這個網域名稱,只不過實現的途徑不同
1>webroot方法,此方法會在你配置的伺服器站點目錄下建立 .well-known 資料夾,這個資料夾裡面包含了一些驗證檔案,certbot 會通過訪問 來驗證你的網域名稱是否繫結的這個伺服器
如果你自己沒有建立相應的站點也可以自己加入乙個比較通用的配置
location ^~ /.well-known/acme-challenge/ location = /.well-known/acme-challenge/
certbot certonly --webroot -w **根目錄 -d example.com -w **根目錄 -d www.example.com
2>standalone方法,如果你不想使用你自己的伺服器,這個方法是個選擇,但是需要注意要關閉相應的埠或者是80或者443(以你自己選擇的方式決定)
使用80埠: certbot certonly --standalone --preferred-challenges http -d example.com
使用443埠: certbot certonly --standalone --preferred-challenges tls-sni -d example.com
3>manual方法,如果你想在任意的linux主機下生成證書,那麼這種方法可能是乙個選擇,但是要注意的是驗證過程中會生成乙個字串,需要你將這個隨機的字串新增到你dns伺服器才可以完成驗證操作.
certbot certonly --manual --preferred-challenges dns -d archerwong.cn
3.刪除證書,如果你生成的時候新增了 --stagin引數,下面的命令也要新增
4.證書更新
sudo certbot renew --dry-run
5.豐富的引數選擇
以上的各種命令其實都是可以加入很多引數,最好是查詢下官方文件
docs/using.html
當然官方提供了很多種生成證書的方法,你可以根據你自己的實際情況進行選擇
證書生成完畢後,我們可以在 /etc/letsencrypt/live/ 目錄下看到對應網域名稱的資料夾,裡面存放了指向證書的一些快捷方式。
生成證書後,配置 nginx
開啟 nginx server 配置檔案加入如下設定:
server
強制跳轉 https
https 預設是監聽 443 埠的,沒開啟 https 訪問的話一般預設是 80 埠。如果你確定** 80 埠上的站點都支援 https 的話加入下面的配件可以自動重定向到 https
server
生成https 免費證書
https證書配置 首先採用的是let s encrypt頒發的免費證書,其次我是使用acme.sh配置的,這裡主要說一下acme.sh的安裝以及使用。1.安裝 官方方法使用如下命令即可 curl sh要麼 wget o sh或者,從git安裝 git clone cd acme.sh解壓之後進入目...
nginx配置https 免費證書
這裡提供兩個方法 第一種 如果你是windows使用者,且有.keystore格式的證書 那麼你可以使用jks2pfx轉換工具,將你的keystore證書轉換為pem證書,操作方法為 cd到工具目錄,然後執行命令 jks2pfx 第二種 如果你是linux或者osx系統 生成秘鑰key,執行 ope...
HTTPS免費證書
一 利用 cerbot 本地伺服器 申請免費可用的證書。缺點就是三個月需要手動換一次 官網 目前使用環境是 ubuntu 16 nginx 安裝指令碼 cerbot 安裝 sudo apt get updatesudo apt get install software properties comm...