1、HTTPS簡述隨着網絡的平常,信息安全愈來愈重要,傳統的網站都是http協議明文傳輸,而HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網絡協議,比http協議安全。node
那https究竟是怎麼開啓的,隨着疑問本身也瞭解https配置原理並在Ubuntu服務器上開啓了https。
我本地配置的域名是https://extend.me
2、配置證書
配置https一個很重要的步驟就是配置證書。
一、建立證書
sudo apt-get install ssl-cert make-ssl-cert
#生成證書的方法有兩種,一種是根據生成按工具默認的方式生成,一種是按模板文件生成
#默認的方式生成
sudo make-ssl-cert generate-default-snakeoil
#按模板文件生成
sudo make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/ssl/private/apache2.pem
二、經過openssl命令行建立自簽名證書(這裏生成的證書也採用pem格式,這個pem格式檔案中包含了私鑰和公鑰(證書)兩部份內容。若是你將keyout和out分別採用不一樣的文件名,那keyout和out所對應的文件就會分別存放私鑰和公鑰(證書)。)
sudo openssl req -x509 -newkey rsa:1024 -keyout /etc/ssl/private/apache.pem -out /etc/ssl/private/apache.pem -nodes -days 999
#信息註解
Country Name (2 letter code) [AU]:CN ←輸入國家代碼 State or Province Name (full name) [Some-State]:JIANGSU ← 輸入省名 Locality Name (eg, city) []:SHANGHAI ←輸入城市名 Organization Name (eg, company) [Internet Widgits Pty Ltd]:YIQU ← 輸入公司名 Organizational Unit Name (eg, section) []:RSA ← 輸入組織單位名 Common Name (eg, YOUR name) []:extend.me ← 輸入主機名(想要開啓https的主機名) Email Address []:dybaid@163.com ←輸入電子郵箱地址
三、簽署證書
sudo openssl genrsa (-des3) 1024 >server.key //括號裏的 命令能夠不加 這個是密碼驗證 加了使用證書就須要輸入密碼
四、生成證書請求文件
openssl req -new -key server.key > server.csr
3、配置Apache
1、開啓SSL模塊 a2enmod ssl 2、啓用SSL站點 a2ensite default-ssl 3、加入監聽端口 sudo vim /etc/apache2/ports.conf #編輯Apache端口配置,加入443端口(HTTPS採用的443端口傳輸數據) Listen 443 4、配置虛擬主機 編輯default-ssl文件,加入證書對應的主機頭。 sudo vim /etc/apache2/sites-enabled/default-ssl ServerName extend.me 5、配置SSL證書 按以下配置 SSLEngine on SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key SSLCertificateChainFile /etc/ssl/certs/server-ca.crt
從新啓動Apache 而後https://extend.me 測試下瀏覽器可能會報證書不合法 能夠添加例外或者其餘仍然訪問就行了 自簽名證書瀏覽器通常會提示不合法 配置完以後你們能夠用抓包工具看下數據傳輸是否加密了。