免費的 SSL 證書,它不香嗎?

帶着問題思考:

  1. what SSL
  2. why SSL
  3. 如何獲取免費的SSL證書

HTTP & Https

  • HTTP : Hyper Text Transfer Protocol(超文本傳輸協議)的縮寫,服務器傳輸超文本到本地瀏覽器的傳送協議
  • HTTPS: Hyper Text Transfer Protocol over SecureSocket Layer(安全套接層的超文本傳輸協議)的縮寫,在HTTP的基礎上進行了數據傳輸增加了加密解密過程。

加密 & 解密

  1. 對稱加密:私鑰加密,即信息的發送方和接收方使用同一個密鑰去加密和解密數據。

特點:

  • 加密過程快,適合大量數據加密
  • 安全性不高,一旦私鑰泄露就導致可以隨意解密數據
  • 算法透明:DES、3DES、TDEA、Blowfish、RC5、IDEA
  1. 非對稱加密: 同時使用公鑰和私鑰來加密和解密. 用公鑰來加密數據,用私鑰來解密數據,只有私鑰可以解密公鑰加密過的數據。

    非對稱加密解密過程示例:

    加密: 明文 + 加密算法 + 公鑰 => 密文

    解密: 密文 + 解密算法 + 私鑰 => 明文

    特點:

    • 加密過程慢且複雜,只適合少量數據進行加密時使用
    • 安全性高,私鑰本地保存,是不能泄露的,公鑰是和私鑰配合使用來加解密的.
    • 算法有:RSA、Elgamal、Rabin、D-H、ECC

SSL

SSL(Secure Sockets Layer)安全套接層協議,是爲網絡通信提供安全及數據完整性的一種安全協議。 SSL協議在1994年被 Netscape 網景公司發明,
現在各個瀏覽器均支持SSL,而且甚至成爲了主流,谷歌瀏覽器現在已經不支持HTTP方式訪問網站了,它直接會認爲你的網站不安全,會導致用戶信息泄露。
爲什麼會這樣,因爲黑客如果攔截到http請求的信息,而我們沒有使用SSL加密,那麼就相當於將數據送給黑客作爲不法用途.
所以HTTPS 以後成爲必須的也不足爲奇.

HTTPS = HTTP + SSL/TLS

獲取免費的 SSL 證書

這裏推薦一個網址: https://certbot.eff.org

在這裏插入圖片描述

大名鼎鼎 Lets encrypt。
我下面以 centos 爲例寫一下,其他的系統可以參考官網使用教程命令執行。

  1. 安裝:
    $ yum -y install yum-utils
    $ yum-config-manager --enable rhui-REGION-rhel-server-extras rhui-REGION-rhel-server-optional
    $ sudo yum install certbot python2-certbot-nginx

  1. 開始
    $ sudo certbot --nginx
  1. 刷新證書
    $ sudo certbot renew --dry-run

在這裏插入圖片描述

定時任務每天刷新

echo “0 0,12 * * * root python -c ‘import random; import time; time.sleep(random.random() * 3600)’
&& certbot renew” | sudo tee -a /etc/crontab > /dev/null

/dev/null 解釋:
2>/dev/null
意思就是把錯誤輸出到“黑洞”

異常解決

  1. 安裝異常 AttributeError: ‘module’ object has no attribute ‘pyopenssl’
   Traceback (most recent call last):
     File "/bin/certbot", line 9, in <module>
       load_entry_point('certbot==0.31.0', 'console_scripts', 'certbot')()
     File "/usr/lib/python2.7/site-packages/pkg_resources.py", line 378, in load_entry_point
       return get_distribution(dist).load_entry_point(group, name)
     File "/usr/lib/python2.7/site-packages/pkg_resources.py", line 2566, in load_entry_point
       return ep.load()
     File "/usr/lib/python2.7/site-packages/pkg_resources.py", line 2260, in load
       entry = __import__(self.module_name, globals(),globals(), ['__name__'])
     File "/usr/lib/python2.7/site-packages/certbot/main.py", line 21, in <module>
       from certbot import client
     File "/usr/lib/python2.7/site-packages/certbot/client.py", line 16, in <module>
       from acme import client as acme_client
     File "/usr/lib/python2.7/site-packages/acme/client.py", line 40, in <module>
       urllib3.contrib.pyopenssl.inject_into_urllib3()
   AttributeError: 'module' object has no attribute 'pyopenssl'

解決方案:

   pip install requests==2.6.0
   
   easy_install --upgrade pip

  1. 異常 :No valid IP address

添加相應的 DNS 解析子域名. 需要去域名服務網站添加一級或者二級域名管理。

求關注

程序領域

在這裏插入圖片描述

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