当前位置:首页 » 网站资讯 » 网站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提供接入,只需解析域名就可以。