對於小程序request請求需要https域名、navigator.geolocation定位也需要在https環境下才可以生效等問題;
前端開發越來越需要https環境來來測試一下API接口和各類問題,今天來講解一下怎么免費快速把普通的http網站配置升級成https協議。
首先向大家介紹一下HTTP和HTTPS的基本概念:
HTTP:是互聯網上應用最為廣泛的一種網絡協議,是一個客戶端和服務器端請求和應答的標准(TCP),可以使瀏覽器更加高效,使網絡傳輸減少。
HTTPS:是以安全為目標的HTTP通道,簡單講是HTTP的安全版,即HTTP下加入SSL層,HTTPS的安全基礎是SSL,因此加密的詳細內容就需要SSL。
1.在此之前一定要申請一個http的域名,先申請個免費的SSL證書,我申請阿里雲的免費SSL
阿里雲免費SLL申請網站:
2.免費購買之后,進入SSL證書管理控制台,找到剛才購買好的證書,點擊證書申請,綁定自身的域名,填寫相關聯系信息,證書之類的設置就默認選項就OK,大概半個小時,會提示證書申請成功。
3.申請簽發成功后,點擊下載證書,請根據自身的服務器類型選擇證書下載:
1.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2.
如果有疑問歡迎在留言處提問,會在第一時間回復!謝謝
相應服務器配置教程如下:
Tomcat服務器安裝SSL證書
在證書控制台下載Tomcat版本證書,下載到本地的是一個壓縮文件,解壓后里面包含.pfx文件是證書文件,pfx_password.txt是證書文件的密碼。
友情提示: 每次下載都會產生新密碼,該密碼僅匹配本次下載的證書。如果需要更新證書文件,同時也要更新密碼。
申請證書時如果沒有選擇系統創建CSR,則沒有該文件,請選擇其它服務器下載.crt文件,利用openssl命令自己生成pfx證書。
1、PFX證書安裝
以Tomcat7標准配置為例,假如證書文件名是a.pfx。
找到安裝Tomcat目錄下該文件server.xml,一般默認路徑都是在 conf 文件夾中。找到 <Connection port=”8443”標簽,增加如下屬性:
keystoreFile="cert/200613478180598.pfx" keystoreType="PKCS12" #此處的證書密碼,請參考附件中的密碼文件或在第1步中設置的密碼 keystorePass="證書密碼"
Apache服務器安裝SSL證書
在證書控制台下載Apache版本證書,下載到本地的是一個壓縮文件,解壓后里面包含_public.crt文件是證書文件,_chain.crt是證書鏈(中間證書)文件,.key文件是證書的私鑰文件(申請證書時如果沒有選擇系統創建CSR,則沒有該文件)。
友情提示: .crt擴展名的證書文件采用Base64-encoded的PEM格式文本文件,可根據需要,修改成.pem等擴展名。
以Apache標准配置為例,假如證書文件名是a_public.crt,證書鏈文件是a_chain.crt,私鑰文件是a.key。
操作步驟
-
在Apache的安裝目錄下創建cert目錄,並且將下載的全部文件拷貝到cert目錄中。如果申請證書時是自己創建的CSR文件,請將對應的私鑰文件放到cert目錄下並且命名為a.key;
-
打開 apache 安裝目錄下 conf 目錄中的 httpd.conf 文件,找到以下內容並去掉“#”。
#LoadModule ssl_module modules/mod_ssl.so (如果找不到請確認是否編譯過 openssl 插件) #Include conf/extra/httpd-ssl.conf(刪除行首的配置語句注釋符號“#”,保存后退出)
3.打開 apache 安裝目錄下 conf/extra/httpd-ssl.conf 文件 (也可能是conf.d/ssl.conf,與操作系統及安裝方式有關), 在配置文件中查找以下配置語句:
# 添加 SSL 協議支持協議,去掉不安全的協議 SSLProtocol all -SSLv2 -SSLv3 # 修改加密套件如下 SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM SSLHonorCipherOrder on # 證書公鑰配置 SSLCertificateFile cert/a_public.crt # 證書私鑰配置 SSLCertificateKeyFile cert/a.key # 證書鏈配置,如果該屬性開頭有 '#'字符,請刪除掉 SSLCertificateChainFile cert/a_chain.crt
4.重啟 Apache。
apachectl -k stop apachectl -k start
Nginx/Tengine服務器安裝SSL證書
在證書控制台下載Nginx版本證書。下載到本地的壓縮文件包解壓后包含:
- .crt文件:是證書文件,crt是pem文件的擴展名。
- .key文件:證書的私鑰文件(申請證書時如果沒有選擇自動創建CSR,則沒有該文件)。
友情提示: .pem擴展名的證書文件采用Base64-encoded的PEM格式文本文件,可根據需要修改擴展名。
以Nginx標准配置為例,假如證書文件名是a.pem,私鑰文件是a.key。
-
在Nginx的安裝目錄下創建cert目錄,並且將下載的全部文件拷貝到cert目錄中。如果申請證書時是自己創建的CSR文件,請將對應的私鑰文件放到cert目錄下並且命名為a.key;
-
打開 Nginx 安裝目錄下 conf 目錄中的 nginx.conf 文件,找到:
# HTTPS server # #server { # listen 443; # server_name localhost; # ssl on; # ssl_certificate cert.pem; # ssl_certificate_key cert.key; # ssl_session_timeout 5m; # ssl_protocols SSLv2 SSLv3 TLSv1; # ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP; # ssl_prefer_server_ciphers on; # location / { # # #} #}
- 將其修改為 (以下屬性中ssl開頭的屬性與證書配置有直接關系,其它屬性請結合自己的實際情況復制或調整) :
server { listen 443; server_name localhost; ssl on; root html; index index.html index.htm; ssl_certificate cert/a.pem; ssl_certificate_key cert/a.key; ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; location / { root html; index index.html index.htm; } }
- :wq! 保存退出, /sbin/nginx -s reload 重啟服務器即可
IIS服務器SSL證書安裝
在證書控制台下載IIS版本證書,下載到本地的是一個壓縮文件,解壓后里面包含.pfx文件是證書文件,pfx_password.txt是證書文件的密碼。
友情提示: 每次下載都會產生新密碼,該密碼僅匹配本次下載的證書。如果需要更新證書文件,同時也要更新密碼。
申請證書時如果沒有選擇系統創建CSR,則沒有該文件,請選擇其它服務器下載.crt文件,利用openssl命令自己生成pfx證書。
1、IIS6
( 1 ) 證書導入
• 開始 -〉運行 -〉MMC;
• 啟動控制台程序,選擇菜單“文件”中的”添加/刪除管理單元”-> “添加”,從“可用的獨立管理單元”列表中選擇“證書”-> 選擇“計算機帳戶”;
• 在控制台的左側顯示證書樹形列表,選擇“個人”->“證書”,右鍵單擊,選擇“所有任務”-〉”導入”, 根據”證書導入向導”的提示,導入PFX文件(此過程當中有一步非常重要: “根據證書內容自動選擇存儲區”)。
• 安裝過程當中需要輸入密碼為您當時設置的密碼。導入成功后,可以看到證書信息。
( 2 ) 分配服務器證書。
2、IIS7/IIS8
( 1 ) 證書導入
• 開始 -〉運行 -〉MMC;
• 啟動控制台程序,選擇菜單“文件”中的”添加/刪除管理單元”-> “添加”,從“可用的獨立管理單元”列表中選擇“證書”-> 選擇“計算機帳戶”;
• 在控制台的左側顯示證書樹形列表,選擇“個人”->“證書”,右鍵單擊,選擇“所有任務”-〉”導入”, 根據”證書導入向導”的提示,導入PFX文件(此過程當中有一步非常重要: “根據證書內容自動選擇存儲區”)。安裝過程當中需要輸入密碼為您當時設置的密碼。導入成功后,可以看到證書信息。
( 2 ) 分配服務器證書
• 打開 IIS8.0 管理器面板,找到待部署證書的站點,點擊“綁定”。
• 設置參數選擇“綁定”->“添加”->“類型選擇 https” ->“端口 443” ->“ssl 證書【導入的證書名稱】” ->“確定”。
SSL 缺省端口為 443 端口(請不要隨便修改。 如果您使用其他端口如:8443,則訪問時必須輸入:https://www.domain.com:8443)。