備註:修改成xx/,使用時注意替換html
1、原理nginx
參考資料:c++
一、SSL證書發展歷程:xx/basic/ssl_history.htm算法
二、數字證書基礎知識:xx/basic/index.htm瀏覽器
整理:安全
SSL證書做用:傳輸信息加密、網站身份驗證。服務器
傳輸信息加密:SSL協議是 NetScape 公司於 1994 年提出的一個關注互聯網信息安全的信息加密傳輸協議,其目的是爲客戶端(瀏覽器) 到服務器 端之間的信息傳輸構建一個加密通道,此協議是與操做系統和 Web 服務器無關。同時, NetScape 在 SSL協議中採用了主流的加密算法(如: DES 、AES 等) 和採用了通用的PKI加密技術;session
網站身份驗證:dom
超快:只驗證域名全部權的 SSL證書,而不要求提供營業執照並驗證,這種 SSL證書只能起到加密做用,而不能起到最關鍵的真實身份認證的做用。而更糟糕的是:這種 SSL證書(超快SSL)在瀏覽器中同超真SSL證書同樣顯示同樣的安全鎖標誌,只要仔細查看證書主題才能發 現:超快SSL 不顯示單位名稱(只顯示域名),而超真SSL 則顯示單位名稱。但通常用戶是不會查驗證書詳細信息的,只是在瀏覽器中看到有安全鎖就覺得安全了;tcp
超真:安全鎖標誌,顯示單位名稱;
超安:讓用戶使用 IE7 或其餘新版瀏覽器訪問此網站時,其地址欄是綠色的,而地址欄右邊的安全狀態欄會循環顯示此網站所屬的單位名稱和頒發此證書的證書頒發機構,以下圖所示,綠色表示此網站的身份是通過嚴格的身份驗證的,而其餘 SSL 證書則仍然顯示通常的白色:
2、推薦使用沃通
一、註冊帳號:https://login.xx/.com/reg.html
二、下載、安裝證書;
三、登陸
四、註冊域名,綁定IP,可使用阿里域名
五、購買證書
3、綁定nginx
學習網址:https://zhangge.net/4861.html
xx//Docdownload/Nginx%20SSL%E8%AF%81%E4%B9%A6%E9%83%A8%E7%BD%B2%E6%8C%87%E5%8D%97.pdf
一、安裝nginx,並安裝( –with-http_ssl_module )ssl
yum install gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib-devel openssl openssl-devel tar -zxvf nginx-1.6.2.tar.gz cp -rf nginx-1.6.2 /usr/local/nginx cd /usr/local/nginx/ ./configure --prefix=/usr/local/nginx -–with-http_ssl_module --with-http_stub_status_module
make && make install
vi /etc/sysconfig/iptables
>> -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
# service iptables restart
檢查配置文件:/usr/nginx/sbin/nginx -t
平滑重啓:/usr/nginx/sbin/nginx -s reload
關閉:ps -ef|grep nginx 查看進程
kill -9 進程
啓動:/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
若是nginx已經安裝後加入ssl
1.看下編譯安裝nginx的時候,都編譯安裝的哪些模塊。 [root@zabbix ~]# /usr/local/nginx/sbin/nginx -V nginx version: nginx/1.8.0 built by gcc 4.4.7 20120313 (Red Hat 4.4.7-17) (GCC) built with OpenSSL 1.0.1e-fips 11 Feb 2013 TLS SNI support enabled configure arguments: --prefix=/usr/local/nginx 2.進入以前下載並解壓了的源碼包目錄;從新編譯nginx [root@zabbix nginx-1.8.0]# cd /usr/local/src/nginx-1.8.0 [root@zabbix nginx-1.8.0]# ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module [root@zabbix nginx-1.8.0]# make ▲這一步千萬不能 make install ;否則會把以前已經安裝的nginx 覆蓋掉 3.須要替換nginx二進制文件,先中止掉nginx進程;備份一下原來的啓動腳本。 [root@zabbix nginx-1.8.0]# /etc/init.d/nginx stop [root@zabbix nginx-1.8.0]# cp /etc/init.d/nginx /etc/init.d/nginx.bak [root@zabbix nginx-1.8.0]# cp objs/nginx /usr/local/nginx/sbin/ cp: overwrite `/usr/local/nginx/sbin/nginx'? yes 4.查看nginx的模塊,看下是否把須要的模塊編譯進去了 [root@zabbix ~]# /usr/local/nginx/sbin/nginx -V nginx version: nginx/1.8.0 built by gcc 4.4.7 20120313 (Red Hat 4.4.7-17) (GCC) built with OpenSSL 1.0.1e-fips 11 Feb 2013 TLS SNI support enabled configure arguments: --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module 5.從新啓動nginx; [root@zabbix nginx-1.8.0]# /etc/init.d/nginx start Starting Nginx: [ OK ] [root@zabbix nginx-1.8.0]# netstat -lnp|grep nginx //查看是否正常監聽80端口
4、配置證書
參考:https://zhangge.net/4861.html
一、獲取證書
a、成功在沃通申請證書後,會獲得一個有密碼的壓縮包文件,輸入證書密碼後解壓獲得五個文件:for Apache、for IIS、for Nginx、for Other Server, 這個是證書的幾種格式,Nginx 上須要用到 for Nginx 格式的證 書
b、解壓後看到兩個文件,"cert"是公鑰,"key"是私鑰
二、配置--HTTP和HTTPS共存
server { listen 80; #新增監聽443端口,並指定443爲ssl: listen 443 ssl; server_name yourdomain.com; #新增ssl配置---開始: ssl_certificate /usr/local/nginx/ssl/yourdomain_bundle.crt; #證書公鑰文件路徑 ssl_certificate_key /usr/local/nginx/ssl/yourdomain.key; #證書私鑰文件路徑 ssl_session_timeout 5m; #5分鐘session會話保持 ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers HIGH:!ADH:!EXPORT56:RC4+RSA:+MEDIUM; #新增ssl配置---結束: location / { #其餘規則保持不變 } }
三、配置--強制HTTPS
server{ listen 80; server_name yourdomain.com; root /path/for/yourdomain.com; location / { rewrite (.*) https://yourdomain.com$1 permanent; } } server { listen 443; server_name yourdomain.com; ssl on; ssl_certificate /usr/local/nginx/ssl/yourdomain_bundle.crt; #證書公鑰文件路徑 ssl_certificate_key /usr/local/nginx/ssl/yourdomain.key; #證書私鑰文件路徑 ssl_session_timeout 5m; ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers HIGH:!ADH:!EXPORT56:RC4+RSA:+MEDIUM; location / { #其餘規則維持不變 } }
四、HTTP和HTTPS各有部分--詳情查看參考