配置以支持https訪問
A. 網站怎麼啟用https訪問
密,因此,所傳送的數據不容易被網路黑客截獲和破解。本文介紹HTTPS的三種實現方法
。
方法一 靜態超鏈接
這是目前網站中使用得較多的方法,也最簡單。在要求使用SSL進行傳輸的Web網頁鏈接
中直接標明使用HTTPS協議,以下是指向需要使用SSL的網頁的超鏈接:
<a href=「https://192.168.100.100/ok/securePage.jsp」>SSL例子</a>
需要說明的是,在網頁里的超鏈接如果使用相對路徑的話,其默認啟用協議與引用該超
鏈接的網頁或資源的傳輸協議相同,例如在某超鏈接「https://192.168.100.100/ok/l
ogin.jps」的網頁中包含如下兩個超鏈接:
<a href=「./bessl/exam.jsp」>SSL鏈接</a>
<a href=「http://192.168.100.100/notssl/index.jsp」>非SSL鏈接
那麼,第一個鏈接使用與「https://192.168.100.100/ok/login.jsp」相同的傳輸協議
HTTPS,第二個鏈接使用本身所標識的協議HTTP。
使用靜態超鏈接的好處是容易實現,不需要額外開發。然而,它卻不容易維護管理; 因
為在一個完全使用HTTP協議訪問的Web應用里,每個資源都存放在該應用特定根目錄下的
各個子目錄里,資源的鏈接路徑都使用相對路徑,這樣做是為了方便應用的遷移並且易
於管理。但假如該應用的某些資源要用到HTTPS協議,引用的鏈接就必須使用完整的路徑
,所以當應用遷移或需要更改URL中所涉及的任何部分如:域名、目錄、文件名等,維護
者都需要對每個超鏈接修改,工作量之大可想而知。再者,如果客戶在瀏覽器地址欄里
手工輸入HTTPS協議的資源,那麼所有敏感機密數據在傳輸中就得不到保護,很容易被黑
客截獲和篡改!
方法二 資源訪問限制
為了保護Web應用中的敏感數據,防止資源的非法訪問和保證傳輸的安全性,Java Serv
let 2.2規范定義了安全約束(Security-Constraint)元件,它用於指定一個或多個We
b資源集的安全約束條件;用戶數據約束(User-Data-Constraint)元件是安全約束元件
的子類,它用於指定在客戶端和容器之間傳輸的數據是如何被保護的。用戶數據約束元
件還包括了傳輸保證(Transport-Guarantee)元件,它規定了客戶機和伺服器之間的通
信必須是以下三種模式之一:None、Integral、Confidential。None表示被指定的Web資
源不需要任何傳輸保證;Integral表示客戶機與伺服器之間傳送的數據在傳送過程中不
會被篡改; Confidential表示數據在傳送過程中被加密。大多數情況下,Integral或Co
nfidential是使用SSL實現。
這里以BEA的WebLogic Server 6.1為例介紹其實現方法,WebLogic是一個性能卓越的J2
EE伺服器,它可以對所管理的Web資源,包括EJB、JSP、Servlet應用程序設置訪問控制
條款。假設某個應用建立在Weblogic Server里的/mywebAPP目錄下,其中一部分Servle
ts、JSPs要求使用SSL傳輸,那麼可將它們都放在/mywebAPP/sslsource/目錄里,然後編
輯/secureAPP/Web-INF/web.xml文件,通過對web.xml的設置可達到對Web用戶實現訪問
控制。
當Web用戶試圖通過HTTP訪問/sslsource目錄下的資源時,Weblogic Server就會查找we
b.xml里的訪問約束定義,返回提示信息:Need SSL connection to access this reso
urce。資源訪問限制與靜態超鏈接結合使用,不僅繼承了靜態超鏈接方法的簡單易用性
,而且有效保護了敏感資源數據。然而,這樣就會存在一個問題: 假如Web客戶使用HT
TP協議訪問需要使用SSL的網路資源時看到彈出的提示信息: Need SSL connection to
access this resource,大部分人可能都不知道應該用HTTPS去訪問該網頁,造成的後果
是用戶會放棄訪問該網頁,這是Web應用服務提供商不願意看到的事情。
方法三 鏈接重定向
綜觀目前商業網站資源數據的交互訪問,要求嚴格加密傳輸的數據只佔其中一小部分,
也就是說在一個具體Web應用中需要使用SSL的服務程序只佔整體的一小部分。那麼,我
們可以從應用開發方面考慮解決方法,對需要使用HTTPS協議的那部分JSPs、Servlets或
EJBs進行處理,使程序本身在接收到訪問請求時首先判斷該請求使用的協議是否符合本
程序的要求,即來訪請求是否使用HTTPS協議,如果不是就將其訪問協議重定向為HTTPS
,這樣就避免了客戶使用HTTP協議訪問要求使用HTTPS協議的Web資源時,看到錯誤提示
信息無所適從的情況,這些處理對Web客戶來說是透明的。
實現思想是:首先創建一個類,該類方法可以實現自動引導Web客戶的訪問請求使用HTT
PS協議,每個要求使用SSL進行傳輸的Servlets或JSPs在程序開始時調用它進行協議重定
向,最後才進行數據應用處理。
J2EE提供了兩種鏈接重定向機制。第一種機制是RequestDispatcher介面里的forward()
方法。使用MVC(Model-View-Controller)機制的Web應用通常都使用這個方法從Servlet
轉移請求到JSP。但這種轉向只能是同種協議間的轉向,並不能重定向到不同的協議。第
二種機制是使用HTTPServletReponse介面里的sendRedirect()方法,它能使用任何協議
重定向到任何URL,例如:
BeSslResponse.sendRedirect(「https://192.168.100.100/order」);
此外,我們還需使用到Java Servlet API中的兩個方法:ServletRequest介面中的getS
cheme(),它用於獲取訪問請求使用的傳輸協議;HTTPUtils類中的getRequestUrl(),它
用於獲取訪問請求的URL,要注意的是該方法在Servlet 2.3中已被移到HTTPServletReq
uest介面。
以下是實現協議重定向的基本步驟:
1. 獲取訪問的請求所使用的協議;
2. 如果請求協議符合被訪問的Servlet所要求的協議,就說明已經使用HTTPS協議了,不
需做任何處理;
3. 如果不符合,使用Servlet所要求的協議(HTTPS)重定向到相同的URL。
例如,某Web用戶使用HTTP協議訪問要求使用HTTPS協議的資源BeSslServlet,敲入「UR
L:http://192.168.100.100/BeSslServlet」,在執行BeSslServlet時首先使用Proces
sSslServlet.processSsl()重定向到https://192.168.100.100/BeSslServlet,然後
BeSslServlet與客戶瀏覽器之間就通過HTTPS協議進行數據傳輸。
以上介紹的僅是最簡單的例子,是為了對這種重定向的方法有個初步的認識。假如想真
正在Web應用中實現,還必須考慮如下幾個問題:
● 在Web應用中常常會用到GET或Post方法,訪問請求的URL中就會帶上一些查詢字串,
這些字串是使用getRequesUrl()時獲取不到的,而且在重定向之後會丟失,所以必須在
重定向之前將它們加入到新的URL里。我們可以使用request.getQueryString()來獲取G
ET的查詢字串,對於Post的Request參數,可以把它們轉換成查詢串再進行處理。
● 某些Web應用請求中會使用對象作為其屬性,必須在重定向之前將這些屬性保存在該
Session中,以便重定向後使用。
● 大多數瀏覽器會把對同一個主機的不同埠的訪問當作對不同的主機進行訪問,分用
不同的Session,為了使重定向後保留使用原來的Session,必須對應用伺服器的Cookie
域名進行相應的設置。
以上問題均可在程序設計中解決。
通過程序自身實現協議重定向,就可以把要求嚴格保護的那部分資源與其他普通數據從
邏輯上分開處理,使得要求使用SSL的資源和不需要使用SSL的資源各取所需,避免浪費
網站的系統資源。
B. nginx怎麼配置ssl可以即允許http訪問也允許https訪問
由於自己生成的證書不受瀏覽器信任,所以需要到第三方ssl證書提供商處購買,在購買跡襪ssl證書時,需要提供一個自己的web伺服器生成的csr密碼。
生成csr的步驟:
①:生成RSA密鑰:
[plain] view plain
$openssl genrsa -out privkey.pem 2048
注意,有的證書是要 1024 的,所以得:
[plain] view plain
openssl genrsa -out privkey.pem 1024
②:生成csr證書:
[plain] view plain
openssl req -new -key privkey.pem -out cert.csr
會提示輸入省份、城市、域名信息等,重要的是,email 一定要是你的域名後綴的,比如 [email protected] 並且能接受郵件,因為ssl證書提供商會發送驗證郵件和證書文件壓縮嘩州晌包到這個郵箱。
這樣就有一個 csr 文件了,直接vi ./cert.csr 查看證書的內容,是一串字元串,如下:
[plain] view plain
-----BEGIN CERTIFICATE REQUEST-----
+pEApeHmNoxE+R4k
/5IjeFwS7nIMsx8KPkQQ71BJazsiZj+
CdLDRJj1m/
pCbyqpJJXdAl3Jcun0NlLtSxTQpR+abO8va/BAO5Hp9h1rpSRtTdSJd2fC/owRV1
BfRuJnA=
-----END CERTIFICATE REQUEST-----
直接復制上面的字元串提交給ssl證書提供商,提供商處理後會發送ssl相關證書到[email protected]郵箱,如下:
把所有文件全部上傳到一亂鋒個特定的目錄,比如我是上傳到 /usr/local/nginx/conf。
這里,zoulukey.pem 和 zoulucert.csr 是自己原來在web伺服器生成的,剩下的都是證書簽發機構頒發的。
一般情況下,直接用證書簽發機構頒發的 crt 文件即可,比如 zou_lu.crt ,但是有很多證書簽發機構默認在 Firefox 中文版下是不會信任的,經過仔細研究,終於發現,原來得把證書簽發機構給你的 crt 文件也放入才行,這時需要合並 PositiveSSLCA.crt (證書簽發機構的 crt)和zou_lu.crt (自己域名的 crt),方法如下:
[plain] view plain
cat zou_lu.crt >> PositiveSSLCA.crt
mv PositiveSSLCA.crt zou_lu.crt
或者直接用記事本打開,然後復制 PositiveSSLCA.crt 裡面所有的內容到 zou_lu.crt 最下方即可。
上傳證書完成後,需要修改nginx的配置,因為並不需要整站https訪問,所以需要http和https訪問共存,如下:
[plain] view plain
server {
listen 80;
listen 443 ssl;
server_name zou.lu;
root /var/www/html;
#ssl on; //這行必須要注釋掉
ssl_certificate /usr/local/nginx/conf/zou_lu.crt;
ssl_certificate_key /usr/local/nginx/conf/zoulukey.pem;
}
配置完成,現在試著用http和https訪問同一個鏈接,應該都可以訪問了。
C. 如何配置https站點
配置https站點需要申請SSL證書,並且部署到伺服器上才可以。申請SSL證書的流程:
第一步,生成並提交CSR(證書簽署請求)文件
CSR文件一般都可以通過在線生成(或伺服器上生成),申請人在製作的同時系統會產生兩個秘鑰,公鑰CSR和密鑰KEY。選擇了SSL證書申請之後,提交訂單並將製作生成的CSR文件一起提交到證書所在的CA頒發機構。
第二步,CA機構進行驗證
CA機構對提交的SSL證書申請有兩種驗證方式:
第一種是域名認證。系統自動會發送驗證郵件到域名的管理員郵箱(這個郵箱是通過WHOIS信息查詢到的域名聯系人郵箱)。管理員在收到郵件之後,確認無誤後點擊我確認完成郵件驗證。所有型號的SSL證書都必須進行域名認證。
第二種是企業相關信息認證。對於SSL證書申請的是OV SSL證書或者EV SSL證書的企業來說,除了域名認證,還得進行人工核實企業相關資料和信息,確保企業的真實性。
第三步,CA機構頒發證書
由於SSL證書申請的型號不同,所驗證的材料和方式有些區別,所以頒發時間也是不同的。
如果申請的是DV SSL證書最快10分鍾左右就能頒發。如果申請的是OV SSL證書或者EV SSL證書,一般3-7個工作日就能頒發。
D. nginx配置ssl使用https(解決前端跨域問題)
想要使用https訪問nginx上部署的項目首先得有ssl證書,ssl證書可以去阿里雲或騰訊雲之類的平台購買,兆灶尺族高當然也有免費的。我這里貼出nginx的相關配置來支持https訪問,如果不知道怎樣配置或者搞不清楚原理的朋友就直接照搬我的這部分server配置就行。
PS:nginx需要安裝ssl模塊,如果使用docker啟動的nginx則已經有了不需辯埋要安裝。
這里不僅配置了https對於nginx的訪問,還配置了代理來訪問後端介面,所以前端在做請求時,請求的地址應該寫為 https://www.abc123.com/api/ +介面地址,這樣前端就能使用https來訪問到後端的介面了。
順便貼一個把http重定向為https的配置
E. windows伺服器怎麼配置https
1、淘寶Gworg獲取HTTPS證書。
2、IIS7 安裝SSL證書:https://www.gworg.com/ssl/110.html
3、IIS7 IIS8 自動跳轉到https://www.gworg.com/ssl/129.html
註:其它環境可以向Gworg簽發機構獲取。安裝防火牆需要設置允許443埠或關閉防火牆,如果本地伺服器安裝安全狗的,請允許443埠。
F. https怎麼配置
首先你的申請一個可信的SSL證書,比如沃通OV SSL Pre證書,然後部署到網站的伺服器端即可,具體配置參考下面的配置HTTPS協議指南。
G. 網站怎麼設置https訪問
實現HTTPS訪問,需要淘寶Gworg獲取SSL證書,安裝到獨立伺服器才可以。
H. 怎麼讓自己的網站支持https 訪問
要想自己的網站支持https訪問,就必須申請和部署SSL證書。具體的申請流程如下:
第一步:將CSR提交到代理商
CSR(Certificate Signing Request)文件必須由用戶自己生成,也可以利用在線CSR生成工具。選擇要申請的產品,提交一個新的訂單,並將製作好的CSR文件提交。
第二步 資料提交到CA
當收到您的訂單和CSR後,如果是域名驗證型證書(DV SSL證書),在域名驗證之後10分鍾左右就可頒發證書,若是其他類型證書則是需要通過CA機構進行驗證之後才可頒發。
第三步 發送驗證郵件到管理員郵箱
權威CA機構獲得資料後,將發送一封確認信到管理員郵箱,信中將包含一個 對應的鏈接過去。每一個訂單,都有一個唯一的PIN以做驗證用。
第四步 郵件驗證
點擊確認信中的鏈接,可以訪問到CA機構驗證網站,在驗證網站,可以看到該訂單的申請資料,然後點擊」I Approve」完成郵件驗證。
第五步 頒發證書
在用戶完成郵件驗證之後,CA機構會將證書通過郵件方式發送到申請人自己的郵箱,當用戶收到證書後直接安裝就可以了。若安裝存在問題,我們是提供免費證書安裝服務的。
I. 如何在Nginx中添加SSL證書以支持HTTPS協議訪問
獲得Nginx環境SSL證書
安裝流程:
環境檢測,檢測命令如下(測試nginx是否支持SSL)nginx-V
如果有輸入 –with-http_ssl_mole 表示已編譯openssl,支持安裝ssl
如果沒有安裝請下載nginx源碼重新編譯:./configure--with-http_stub_status_mole--with-http_ssl_mole
make&&makeinstall配置Nginx
server{
listen80;
listen443ssl;
server_namewww.gworg.cn;
ssl_protocolsTLSv1.2TLSv1.1TLSv1;
ssl_certificate/etc/ssl/yourdomain.com.crt;
ssl_certificate_key/etc/ssl/yourdomain.com.key;
ssl_prefer_server_cipherson;
#自動跳轉到HTTPS(可選)
if($server_port=80){
rewrite^(.*)$https://$host$1permanent;
}
location/{
root/home/web/;
indexindex.php;
}
}以上配置僅供參考,其他參數請根據生產環境需要添加。
安裝後重啟nginx使其生
解決辦法:SSL證書可以在Gworg申請,然後根據以上文檔安裝,Nginx證書分為:crt公鑰與key私鑰2個文件。
J. 如何將網站設置成https訪問的模式
一、申請SSL 簽發證書。
二、准備好獨立伺服器或雲伺服器、域名。
三、拿到簽發的SSL證書,根據機構教程安裝到伺服器。
四、測試HTTPS網站是否正常。