一个依然采用HTTP传输信息的购物网站,很有可能成为“钓鱼”攻击的目标,那么,HTTP的风险何在呢?
举个例子来说,当登陆一家购物网站的账户或进行购物付款时,需要输入用户名及密码,这些信息将通过HTTP协议传输给网站服务器。但HTTP传输未经加密,密码在传输过程中很可能被黑客截获,以致资金被窃。为了保证这些隐私数据能加密传输,网络安全专家设计了HTTPS协议。HTTPS中的“S”指的就是SSL证书(服务器证书),由SSL证书+HTTP协议构建的可进行加密传输、网站身份认证的网络协议,可以有效防止信息泄露。
阿里云配置https流程
源材料
阿里云服务器
阿里云域名
阿里云ssl证书(阿里云搜索ssl即可免费获得)
springboot环境(springboot1.5.6+mybatis+mysql+java)
流程
第一步
这里下载tomcat的证书即可,解压后会得到一个*.pfx文件和一个txt文件
我们把它们放在resources文件下
第二步
springboot启动类中加入下列代码
@Bean
public EmbeddedServletContainerFactory servletContainer() {
//springboot版本不同可能下面的类名会不同或者类的包路径会不同
TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory() {
@Override
protected void postProcessContext(Context context) {
SecurityConstraint constraint = new SecurityConstraint();
constraint.setUserConstraint("CONFIDENTIAL");
SecurityCollection collection = new SecurityCollection();
collection.addPattern("/*");
constraint.addCollection(collection);
context.addConstraint(constraint);
}
};
tomcat.addAdditionalTomcatConnectors(httpConnector());
return tomcat;
}
@Bean
public Connector httpConnector() {
Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
connector.setScheme("http");
//监听http的端口号
connector.setPort(80);
connector.setSecure(false);
//监听到http的端口号后转向到的https的端口号
System.out.println("监听到了80端口");
connector.setRedirectPort(443);//这里的端口写成和配置文件一样的端口就Ok
return connector;
}
第三步
application.properties中加入下列配置
server.ssl.key-store=classpath你的pfx文件名.pfx
server.ssl.key-store-password=你的txt文件中的密码
server.ssl.keyStoreType=PKCS12
server.port=443
查看结果
访问我们的服务器可以发现已经带https绿标了