現在已經有很多的免費ssl證書提供商,國內的也有,
不過國內政策要求還要把key給他們,
我們還是用Let’s Encrypt吧,
這里有官方中文檔案 ->biubiubiu
官方推薦的是使用Certbot ACME 客戶端
但是這里用的是acme.sh
acme.sh是個開源的shell腳本,要更為輕量,對于我的破爛vps還是選擇輕量點的吧,
Acme.sh也有中文的簡單教程,很詳細:-(′▽`)-
關于acme.sh
Acme.sh會在每天 0:00 點自動檢測所有的證書,需要更新時會自動更新
acme所有東西都在~/.acme.sh/下面,不會對外造成影響
安裝acme.sh
curl https://get.acme.sh | sh
可以設定別名,不然命令太長了alias acme.sh=~/.acme.sh/acme.sh
生成證書
可以自己設定
acme.sh --issue -d mydomain.com -d www.mydomain.com --webroot /home/wwwroot/mydomain.com/
nginx/apache可以自動獲取域名
acme.sh --issue -d mydomain.com --apache
acme.sh --issue -d mydomain.com --nginx
使用nginx模式在安裝程序中遇到錯誤
[Mon Mar 2 15:42:33 UTC 2020] Can not find conf file for domain seyana.life
[Mon Mar 2 15:42:33 UTC 2020] Please add '--debug' or '--log' to check more details.
這是因為在nginx中,我配置server_name 為localhost
server_name localhost
acme.h是根據這個獲取域名的,所以會出錯,需要為系結的域名
設定好后重新運行就成功了,
安裝證書
用提供的命令可以一次把證書和key復制到指定目錄
acme.sh --installcert -d www.xxxxx.come \
--key-file /root/ssl/key/key.pem \
--fullchain-file /root/ssl/cert/cert.pem \
--reloadcmd "service nginx force-reload"
不建議把證書留在~/.acme.sh/中,
關于配置,不提供自動配置,需要自己配置
下面是nginx的443配置例子
server {
listen 443 ssl;
server_name www.xxx.com xxx.com;#域名
ssl_certificate /root/ssl/cert/cert.pem;#證書路徑
ssl_certificate_key /root/ssl/key/key.pem;#key路徑
#...
}
之后可以用301永久重定向把http 的80埠也轉發到443上
rewrite ^/(.*)$ https://www.****.com/$1 permanent;
這樣即使用http訪問也會跳轉到https上,當然這樣的轉換方式仍然存在風險,可以開啟HSTS固定訪問https等措施,具體還是留到https優化里把,
小鎖鎖get√
其他acme.h2命令
acme.sh --upgrade #更新
acme.sh --upgrade --auto-upgrade #開啟自動更新
acme.sh --upgrade --auto-upgrade 0 #關閉自動更新
更多更高級的用法在wiki上 wwwww
我的博客: https://www.seyana.life/post/15
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/41000.html
標籤:其他
上一篇:mysql資料庫基礎
下一篇:ue4制作玻璃材質
