WEB应用集成HTTPS(http+ssl)让您能的应用更安全
来源:未知 时间:2018-59-27 浏览次数:107次
HTTPS协议的WEB应用的信息更加安全,同时可降低网站被劫持的风险,HTTPS是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,HTTPS默认端口是443,而HTTP默认端口为80,本文讲解主流http服务配置使支持HTTPS协议一 、HTTPS安全证书的获取
- 自己生成:有jdk-tool等工具可以自己生成证书,但不被浏览器认可反而会提示不安全问题
- 通过免费渠道获取:一般大多数云主机提供商(如阿里云,腾讯云,百度云)都会提供免费证书的生成,但支持的功能和安全性相对较低
- 收费证书:通过www认可的证书提供渠道生成收费证书,安全性较高,兼容性较好
- 1. /usr/local/nginx/sbin/nginx -V 查看nginx版本与编译安装了哪些模块
nginx version: nginx/1.10.3
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-18) (GCC)
built with OpenSSL 1.0.1e-fips 11 Feb 2013
TLS SNI support enabled
configure arguments:
- 2. 下载nginx 1.10.3, 并且configure
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
- 3. 执行make ,千万不要make install 否则会覆盖现有的nginx
- 4. 关闭nginx
- 5. copy ~/download/nginx-1.10.3/objs/nginx 到现有的/usr/local/nginx/sbin/nginx
- 6. /usr/local/nginx/sbin/nginx -V 查看编译安装的模块
nginx version: nginx/1.10.3
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-18) (GCC)
built with OpenSSL 1.0.1e-fips 11 Feb 2013
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
- 7. 修改nginx.conf文件
server {
server_name xxx.yyy.com;
listen 443;
ssl on;
ssl_certificate /usr/local/nginx/conf/xxx.com_server.txt; #公钥
ssl_certificate_key /usr/local/nginx/conf/xxx.com_private.txt; #私钥
location / {
# location的一堆配置
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
###########################80端口的处理###############################
server {
listen 80;
server_name xxx.yyy.com;
send_timeout 1800;
rewrite ^(.*)$ https://xxx.yyy.com$1 permanent; # 80端口跳转
}
注:如果是nginx全新安装只需选择ssl模块配置即可
三、TOMCAT配置SSL使支持HTTPS访问
注:如果是nginx全新安装只需选择ssl模块配置即可
三、TOMCAT配置SSL使支持HTTPS访问
- 配置Tomcat证书配置: 打开 Tomcat 配置文件 confserver.xml。取消注释,并添加两个属性 keystoreFile,keystorePass。
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" keystoreFile="E:/tomcat.keystore" keystorePass="123456" />
其中,keystoreFile是生成的证书文件地址,keystorePass是密钥库口令。
- 测试HTTPS:测试链接 https://www.ixiera.com/,观察Tomcat输出日志会发现异常。
严重: Failed to initialize end point associated with ProtocolHandler ["http-apr-8443"]
java.lang.Exception: Connector attribute SSLCertificateFile must be defined when using SSL with APR
at org.apache.tomcat.util.net.AprEndpoint.bind(AprEndpoint.java:484)
at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:566)
at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:417)
at org.apache.catalina.connector.Connector.initInternal(Connector.java:956)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
at org.apache.catalina.core.StandardService.initInternal(StandardService.java:559)
解决方法是注释confserver.xml文件中下面一行。
<!--<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />-->
重启Tomcat ,这时可以看到浏览器已经可以打开 HTTPS 链接了。
以上以tomcat,nginx等主流http服务为例介绍了配置HTTPS以及安全证书获取的详细步骤,任何安全协议都不是绝对安全,安全是相对的,配置HTTPS只是增加了应用的安全级别,其他防护任然不可或缺
以上以tomcat,nginx等主流http服务为例介绍了配置HTTPS以及安全证书获取的详细步骤,任何安全协议都不是绝对安全,安全是相对的,配置HTTPS只是增加了应用的安全级别,其他防护任然不可或缺