服务从http 升级到https 都需要做哪些改变

项目要上线,需要把http变成https,作为安全防护的一个手段。

 

如果不走https,只用http有什么问题?

  • 其一,通过抓包,可以看到你全部的数据。
  • 其二,通过抓包,在你的页面数据上放一些广告。
  • 还有更多,就不列举了。

 

如果走https,都需要哪些条件?

如果是demo项目的话,可以使用JDK自己签发SSL证书,这个如果只是后台访问接口,https没问题,如果是页面在googel浏览器展示,然后去调用https的接口就有问题了,谷歌浏览器说这个证书我不认可。

所以就有了第一个需求:一个浏览器都认可的ssl证书。这个可以通过在阿里云上去购买。不过也有免费的的案例级别的。这里不做过多的介绍了,直接放一个链接。看看怎么搞到浏览器认可的ssl证书。但是获取SSL证书有一个前提条件,就是有一个备案的域名

域名备案,这个过程就自己解决吧。如何在阿里云上获取免费的SSL证书

 

有的SSL证书,应该把SSL证书放在哪个来开启https的访问方式

下载SSL证书,这个应该是看了前边的步骤,已经申请到了SSL证书

服务从http 升级到https 都需要做哪些改变_第1张图片

 

 

如果是demo项目,不走nginx,前后端直接交互

这种交互,把SSL证书放在tomcat是可以的。不过如果是springboot项目,可以一起打包到jar里边。

具体操作流程看这篇文章比较详细了:https://blog.csdn.net/jinchunzhao123/article/details/93142082

 

如果是域名访问的上线的项目

线上的项目一般是这样的架构

服务从http 升级到https 都需要做哪些改变_第2张图片

基本架构是硬负载(ReadWhere)+ 软负载(Nginx)+ Tomcat集群。这里用到了nginx,直接发证书放在nginx是比较好一点的。现在前后端都是分离的,一方面是需要部署前端页面,一方面是后台服务。所以在nginx部署一次也是比较省事的,本身nginx也是支持的。

看一下如果SSL证书放nginx应该怎么办

选择对应自己服务器的证书下载。我这里试用的是nginx服务器。下载下来的压缩包解压之后会获得一个.pem和一个.key的文件。将文件上传到自己服务器。试用FileZilla Client上传文件到服务器的nginx的配置文件目录下面。新建cert文件夹

将上传的文件放到cert目录下面。然后修改nginx.conf的配置文件

# HTTPS server
# #server {
# listen 443;
# server_name localhost;
# ssl on;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# ssl_session_timeout 5m;
# ssl_protocols SSLv2 SSLv3 TLSv1;
# ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
# ssl_prefer_server_ciphers on;
# location / {
#
#
#}
#}



修改为一下的形式:注意带ssl的都需要配置,请仔细核对

server {
    listen 443;
    server_name localhost;
    ssl on;
    root html;
    index index.html index.htm;
    ssl_certificate   cert/214897021540762.pem;
    ssl_certificate_key  cert/214897021540762.key;
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    location / {
        root html;
        index index.html index.htm;
    }
}


配置完之后保存退出。
重启nginx服务器使配置生效。

这样你的服务器在访问的时候就可以使用https的方式请求了。
 


 

你可能感兴趣的:(开发经验)