當前位置:首頁 » 網站資訊 » 網站http如何轉換https
擴展閱讀
網路安全法監控主任責任 2025-07-05 16:29:00
世界上首個計算機網路 2025-07-05 14:15:44
電腦一扯就黑屏怎麼辦 2025-07-05 12:42:54

網站http如何轉換https

發布時間: 2023-05-26 02:12:52

如何將http/https協議轉換為https

項目里需要訪問其他介面,通過http/https協議。我們一般是棗旦攔用HttpClient類來實現具體的http/https協議介面的調用。

// Init a HttpClient
HttpClient client = new HttpClient();
String url=http://www.xxx.com/xxx;

// Init a HttpMethod
HttpMethod get = new GetMethod(url);
get.setDoAuthentication(true);
get.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler(1, false));

// Call http interface
try {
client.executeMethod(get);

// Handle the response from http interface
InputStream in = get.getResponseBodyAsStream();
SAXReader reader = new SAXReader();
Document doc = reader.read(in);
} finally {
// Release the http connection
get.releaseConnection();
}

以上代碼在通過普通的http協議是沒有問題的,但如果是https協議的話,就會有證書文件凳胡的要求了。一般情況下,是這樣去做的。

// Init a HttpClient
HttpClient client = new HttpClient();
String url=https://www.xxx.com/xxx;

if (url.startsWith("https:")) {
System.setProperty("javax.net.ssl.trustStore", "/.sis.cer");
System.setProperty("javax.net.ssl.trustStorePassword", "public");
}

於是,這里就需要事先生成一個.sis.cer的文件,生成這個文件的方法一般是先通過瀏覽器訪問https://,導出證書文件,再用JAVA keytool command 生成證書

# $JAVA_HOME/bin/keytool -import -file sis.cer -keystore .sis.cer

但這樣做,一比較麻煩,二來證書也有有效期,過了有效期之後,遲腔又需要重新生成一次證書。如果能夠避開生成證書文件的方式來使用https的話,就比較好了。

還好,在最近的項目里,我們終於找到了方法。

// Init a HttpClient
HttpClient client = new HttpClient();
String url=https://www.xxx.com/xxx;

if (url.startsWith("https:")) {
this.supportSSL(url, client);
}

用到了supportSSL(url, client)這個方法,看看這個方法是如何實現的。

private void supportSSL(String url, HttpClient client) {
if(StringUtils.isBlank(url)) {
return;
}
String siteUrl = StringUtils.lowerCase(url);
if (!(siteUrl.startsWith("https"))) {
return;
}

try {
setSSLProtocol(siteUrl, client);
} catch (Exception e) {
logger.error("setProtocol error ", e);
}
Security.setProperty( "ssl.SocketFactory.provider",
"com.tool.util.DummySSLSocketFactory");
}

private static void setSSLProtocol(String strUrl, HttpClient client) throws Exception {

URL url = new URL(strUrl);
String host = url.getHost();
int port = url.getPort();

if (port <= 0) {
port = 443;
}
ProtocolSocketFactory factory = new SSLSocketFactory();
Protocol authhttps = new Protocol("https", factory, port);
Protocol.registerProtocol("https", authhttps);
// set https protocol
client.getHostConfiguration().setHost(host, port, authhttps);
}

在supportSSL方法里,調用了Security.setProperty( "ssl.SocketFactory.provider",
"com.tool.util.DummySSLSocketFactory");
那麼這個com.tool.util.DummySSLSocketFactory是這樣的:
訪問https 資源時,讓httpclient接受所有ssl證書,在weblogic等容器中很有用
代碼如下:
1. import java.io.IOException;
2. import java.net.InetAddress;
3. import java.net.InetSocketAddress;
4. import java.net.Socket;
5. import java.net.SocketAddress;
6. import java.net.UnknownHostException;
7. import java.security.KeyManagementException;
8. import java.security.NoSuchAlgorithmException;
9. import java.security.cert.CertificateException;
10. import java.security.cert.X509Certificate;
11.
12. import javax.net.SocketFactory;
13. import javax.net.ssl.SSLContext;
14. import javax.net.ssl.TrustManager;
15. import javax.net.ssl.X509TrustManager;
16.
17. import org.apache.commons.httpclient.ConnectTimeoutException;
18. import org.apache.commons.httpclient.params.HttpConnectionParams;
19. import org.apache.commons.httpclient.protocol.SecureProtocolSocketFactory;
20.
21. public class MySecureProtocolSocketFactory implements SecureProtocolSocketFactory {
22. static{
23. System.out.println(">>>>in MySecureProtocolSocketFactory>>");
24. }
25. private SSLContext sslcontext = null;
26.
27. private SSLContext createSSLContext() {
28. SSLContext sslcontext=null;
29. try {
30. sslcontext = SSLContext.getInstance("SSL");
31. sslcontext.init(null, new TrustManager[]{new TrustAnyTrustManager()}, new java.security.SecureRandom());
32. } catch (NoSuchAlgorithmException e) {
33. e.printStackTrace();
34. } catch (KeyManagementException e) {
35. e.printStackTrace();
36. }
37. return sslcontext;
38. }
39.
40. private SSLContext getSSLContext() {
41. if (this.sslcontext == null) {
42. this.sslcontext = createSSLContext();
43. }
44. return this.sslcontext;
45. }
46.
47. public Socket createSocket(Socket socket, String host, int port, boolean autoClose)
48. throws IOException, UnknownHostException {
49. return getSSLContext().getSocketFactory().createSocket(
50. socket,
51. host,
52. port,
53. autoClose
54. );
55. }
56.
57. public Socket createSocket(String host, int port) throws IOException,
58. UnknownHostException {
59. return getSSLContext().getSocketFactory().createSocket(
60. host,
61. port
62. );
63. }
64.
65.
66. public Socket createSocket(String host, int port, InetAddress clientHost, int clientPort)
67. throws IOException, UnknownHostException {
68. return getSSLContext().getSocketFactory().createSocket(host, port, clientHost, clientPort);
69. }
70.
71. public Socket createSocket(String host, int port, InetAddress localAddress,
72. int localPort, HttpConnectionParams params) throws IOException,
73. UnknownHostException, ConnectTimeoutException {
74. if (params == null) {
75. throw new IllegalArgumentException("Parameters may not be null");
76. }
77. int timeout = params.getConnectionTimeout();
78. SocketFactory socketfactory = getSSLContext().getSocketFactory();
79. if (timeout == 0) {
80. return socketfactory.createSocket(host, port, localAddress, localPort);
81. } else {
82. Socket socket = socketfactory.createSocket();
83. SocketAddress localaddr = new InetSocketAddress(localAddress, localPort);
84. SocketAddress remoteaddr = new InetSocketAddress(host, port);
85. socket.bind(localaddr);
86. socket.connect(remoteaddr, timeout);
87. return socket;
88. }
89. }
90.
91. //自定義私有類
92. private static class TrustAnyTrustManager implements X509TrustManager {
93.
94. public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {
95. }
96.
97. public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {
98. }
99.
100. public X509Certificate[] getAcceptedIssuers() {
101. return new X509Certificate[]{};
102. }
103. }
104.
105. }

public class MySecureProtocolSocketFactory implements SecureProtocolSocketFactory {
static{
System.out.println(">>>>in MySecureProtocolSocketFactory>>");
}
private SSLContext sslcontext = null;

private SSLContext createSSLContext() {
SSLContext sslcontext=null;
try {
sslcontext = SSLContext.getInstance("SSL");
sslcontext.init(null, new TrustManager[]{new TrustAnyTrustManager()}, new java.security.SecureRandom());
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
} catch (KeyManagementException e) {
e.printStackTrace();
}
return sslcontext;
}

private SSLContext getSSLContext() {
if (this.sslcontext == null) {
this.sslcontext = createSSLContext();
}
return this.sslcontext;
}

public Socket createSocket(Socket socket, String host, int port, boolean autoClose)
throws IOException, UnknownHostException {
return getSSLContext().getSocketFactory().createSocket(
socket,
host,
port,
autoClose
);
}

public Socket createSocket(String host, int port) throws IOException,
UnknownHostException {
return getSSLContext().getSocketFactory().createSocket(
host,
port

然後按如下方式使用HttpClient
Protocol myhttps = new Protocol("https", new MySecureProtocolSocketFactory (), 443);
Protocol.registerProtocol("https", myhttps);
HttpClient httpclient=new HttpClient();

㈡ 怎樣把網站從http轉換成https

網頁從http轉換成https需要申請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個工作日就能頒發。

怎麼把http轉換為https

1、HTTPS網站需要淘寶搜關鍵字:Gworg 獲取HTTPS證書。
2、獨立伺服器或雲伺服器才支持,不過有的虛擬主機也清清譽支持SSL。
3、根據不同的伺服器環境按照簽發機構要求安裝證書。
4、網頁源碼正消需要答段查看一下是否調用了普通HTTP協議,因為在HTTPS加密網站情況下是無法調用普通HTTP協議的,以下是具體代碼說明教程。
使用相對Url無縫切換HTTP-HTTPS:https://www.gworg.com/ssl/334.html
https 頁面中引入 http 資源的解決方式:https://www.gworg.com/ssl/191.html

㈣ 提問,網站如何從HTTP升級到HTTPS

網站從HTTP升級到HTTPS,最主要的方式就是該網站安裝了SSL證書,啟用了SSL加密協議。

首先,需要數字證書,安信證書上有多種不同類型的SSL證書,大家可以先選擇好自己合適的SSL證書,一般SSL證書按照驗證方式可分為:DVOVEV三種;要是域名數量方式可分為:單域名、多域名以及通兆散配符三種。

其次,需要將證書文件和私鑰文件上傳到伺服器並將其路徑配置到伺服器中。

然後重啟伺服器哪悔。要開始分配李猜正證書,就要重啟伺服器。

最後測試SSL證書是否有效。用各種瀏覽器來測試一下SSL證書是否有效。通過」p>

大家在瀏覽網址前是帶有HTTPS的就是安全網站,是可以放心使用的,要是不是HTTPS開頭的話,盡量不要打開該網站,也許是垃圾/釣魚網站,隨時都會面臨著個人數據泄露等損失。

㈤ 怎樣把網站從http轉換成https

網站從http升級到https,需要到CA機構申請SSL證書,枯猛螞將SSL證書部署到服知銷務器端,就可以實現https網站。具體方沒埋法,可參考:
《網站如何從http升級到https》http://www.wosign.com/news/seozac-https.htm

㈥ 網站從http轉換成https怎麼弄 網站從http轉換成https方法介紹

1、確定需要HTTPS的域名,當然這個域名是獨立的,可以正常解析。
2、擁有一台獨立伺服器,通常適應的是雲伺服器(虛擬主機通常都不支持的)。
3、網站程序源碼,這個很重要不是所有源碼都支持HTTPS,不過通常主流都是支持的,不支持的也是稍微修改一下就可以了。
4、關鍵的一步HTTPS是要辦理認證的,這一點需要登陸淘寶:Gworg 獲取信任的證書,當然需要驗證的域名的,不過Gworg會指導完成驗證。
5、需要把認證好的證書安裝到獨立伺服器,這一點可以讓Gworg提供安裝文檔,當然看不懂文檔沒有關系,給錢就可以讓Gworg完成安裝了。
6、最後一步打開網頁,預覽就看到地址欄顯示HTTPS了。

㈦ 怎樣把網站從http轉換成https

網站從http升級到https,需要到CA機構申請SSL證書,將SSL證書部署到伺服器端,就可以實現https網站。

㈧ 如何將HTTP站點轉換成HTTPS,及後續問題

想要將HTTP站點轉換成HTTPS,必須申枝備請並安裝SSL證書才能實現。SSL證書申請流程如下:
第一步:將CSR提交到代理商
CSR(Certificate Signing Request)文件必須由用戶自己生成,也可以利用在猛緩毀線CSR生成工具。選擇要申請的產品,提哪遲交一個新的訂單,並將製作好的CSR文件提交。
第二步 資料提交到CA
當收到您的訂單和CSR後,如果是域名驗證型證書(DV SSL證書),在域名驗證之後10分鍾左右就可頒發證書,若是其他類型證書則是需要通過CA機構進行驗證之後才可頒發。
第三步 發送驗證郵件到管理員郵箱
權威CA機構獲得資料後,將發送一封確認信到管理員郵箱,信中將包含一個 對應的鏈接過去。每一個訂單,都有一個唯一的PIN以做驗證用。
第四步 郵件驗證
點擊確認信中的鏈接,可以訪問到CA機構驗證網站,在驗證網站,可以看到該訂單的申請資料,然後點擊」I Approve」完成郵件驗證。
第五步 頒發證書
在用戶完成郵件驗證之後,CA機構會將證書通過郵件方式發送到申請人自己的郵箱,當用戶收到證書後直接安裝就可以了。若安裝存在問題,安信SSL證書是提供免費證書安裝服務的。

㈨ 怎樣把網站從http轉換成https

實現http轉換為https,是要購買一張SSL證書並安裝到伺服器上洞物穗。這里建議不要使用免費螞衫的SSL證書,免費的SSL證書不會對網站進行數據加密,僅僅是把http換成了https,而且免費的證書不是受信任的CA機構頒發的,不被全球所有的瀏覽器納卜信任,用戶訪問時瀏覽器會提示安全風險,影響用戶體驗。

㈩ 網站的http如何轉成https

伺服器+域名+SSL數字證書=HTTPS

升級HTTPS流程:

  • 普通的HTTP網站搭建完畢,並且可以訪問。

  • 確定升級HTTPS的域名。

  • Gworg申請後根據Gworg要求完成SSL證書認證。

  • 大約15分鍾獲得SSL數字證書。

  • 配置到虛擬主機或雲伺服器就可以實現HTTPS。

解決辦法:如果虛擬主機(空間)不支持,也可以讓Gworg提供接入,只需解析域名就可以。