1. 程式人生 > >apache和nginx開啟https

apache和nginx開啟https

  1. 1.安裝mod_ssl和openssl  
  2. yum -y install mod_ssl openssl  
  3. 2.建立伺服器金鑰  
  4. mkdir /etc/httpd/conf.d/ssl.key/  
  5. cd /etc/httpd/conf.d/ssl.key/  
  6. openssl genrsa -out server.key 1024
  7. 3.建立伺服器公鑰  
  8. openssl req -new -key server.key -out server.csr  
  9. 4.建立伺服器證書   
  10. openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt  
  11. 5.最後對/etc/httpd/conf.d/ssl.conf 進行修改:將SSLCertificateFile和SSLCertificateKeyFile改成如下  
  12. SSLCertificateFile /etc/httpd/conf.d/ssl.key/server.cert  
  13. SSLCertificateKeyFile /etc/httpd/conf.d/ssl.key/server.key  
  14. 6.重啟apache  
  15. 7.高階-》繼續訪問  

上面是apache開啟https但是沒有認證,nginx開啟免費認證按照下面流程

1.第一步
配置一個https站點需要有一個ssl的證書,我們可以到以下網址去申請一個免費的ssl證書:

  1. https://buy.wosign.com/Free/#ssl    

2.第二步
有了ssl的證書後,我們可以將需要的伺服器型別的壓縮包解壓後上傳到伺服器中。一共有兩個檔案,一個是.crt檔案,還有一個是.key檔案。

3.第三步
在原有的nginx的server配置中新增以下內容:

  1. listen       443 ssl;    
  2. server_name  xxx; #你的域名    
  3. ssl                  on;    
  4. ssl_certificate      xxx; #crt檔案位置    
  5. ssl_certificate_key     xxx;#key檔案位置    
  6. ssl_session_timeout  5m;    
  7. ssl_protocols TLSv1 TLSv1.1 TLSv1.2;    
  8. ssl_ciphers AESGCM:ALL:!DH:!EXPORT:!RC4:+HIGH:!MEDIUM:!LOW:!aNULL:!eNULL;    
  9. ssl_prefer_server_ciphers   on;   
然後重啟nginx,關閉瀏覽器並且清空快取,就能夠用https訪問網站啦!

4.第四步
你可能會發現現在用http進不去網站了!怎麼辦呢?很簡單,只要新增以下配置即可!

  1. server {    
  2.         listen 80;    
  3.         listen [::]:80 ssl ipv6only=on;    
  4.         server_name   xxx;#域名    
  5.         return 301 https://xxx$request_uri; #xxx為你的域名    
  6. }    
這樣,使用者即使不輸入https,輸入http也能訪問了,所有連線都會被重定向到https頁面!