從零開始部署個人網站(四)--ssl證書

爲了讓我們的網站更加安全,防止運營商注入廣告,防止用戶信息外泄,https已經逐漸變得大衆化。

雖然有些ssl證書提供商需要收費,他們往往都是面對多個域名的情況下,如果只是單個域名,使用免費的let’s Encrypt也能將我們網站支持https。

生成SSL證書

1、 下載安裝let’s encrypt

sudo apt-get install letsencrypt

2、是有webroot插件,自動生成證書

letsencrypt certonly --webroot -w /var/www/example -d example.com
# 注意 /var/www/example 是你網址的根目錄,域名可以能直接訪問到的

原理是在 /var/www/example 目錄下創建臨時文件 .well-known/acme-challenge ,通過這個文件來證明對域名 example.com 的控制權,然後 Let’s Encrypt 驗證服務器發出 HTTP 請求,驗證每個請求的域的 DNS 解析,驗證成功即頒發證書。(這裏默認/var/www/example爲網站根目錄,請酌情修改)

生成的 pem 和 key 在 /etc/letsencrypt/live/ 目錄下。其中 fullchain.pem 是接下來要用到的 ssl_certificateprivkey.pemssl_certificate_key

3、 開啓apache中SSL模塊

a2enmod ssl

4、配置apache文件
可以新建一個新的conf專門來監聽https的443端口,然後添加上

<VirtualHost *:443>
······

SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/example.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem

······
</VirtualHost>

添加完

a2ensite XXXX
service apache2 restart

4、 騰訊雲開放443端口
安全組添加443端口的訪問權限
這時候訪問我們的https://的網站,就能正常訪問了。

5、 添加自動跳轉
完成https://的訪問之後,我們希望能夠實現訪問http網站的時候,能夠自動跳轉到我們https的網站對應頁面,這個是怎麼實現的呢?只要在apache中配置晚間中,需要一些配置

方法一

Redirect permanent / https://www.example.com/

方法二

在Apache配置文件編輯網站虛擬主機,並添加以下設置。您也可以在.htaccess文件中添加在你的網站上的文檔根目錄相同的設置。

  RewriteEngine On
  RewriteCond %{HTTPS} off
  RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

如果您想具體URL重定向到HTTPS。使用以下設置。例如,如果有人試圖訪問always-secure.html這個頁面會跳轉到 https 的頁面。用戶必須有SSL訪問的URL。

RewriteEngine On
RewriteRule ^always-secure.html$ https://www.example.com/always-secure.html [R=301,L]

OK,這樣就完成了ubuntu中項目配置的各種問題了。


最後如果需要優化ssl證書,參考網站配置

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章