zoukankan      html  css  js  c++  java
  • 腾讯云服务器申请免费SSL证书,实现Https。

    1.首先在腾讯云的SSL证书管理中申请免费的SSL。审核速度还是挺快的...

    2.按照步骤申请后,就可以下载主流web服务器的证书了。如图:

    3.这里我使用的web服务器是nginx,把nginx下的文件上传到linux服务器中。

    4.配置nginx.conf内容

    server {
        listen       443;
        server_name  _;
        charset utf-8;
    
        ssl on; 
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; 
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
        ssl_certificate /home/key_dir/1_mydearest.cn_bundle.crt;  
        ssl_certificate_key /home/key_dir/2_mydearest.cn.key; 
    }

    5.重启nginx service nginx restart 使配置生效

    6.使用全站加密,http自动跳转https(可选)

    对于用户不知道网站可以进行https访问的情况下,让服务器自动把http的请求重定向到https。
    在服务器这边的话配置的话,可以在页面里加js脚本,也可以在后端程序里写重定向,当然也可以在web服务器来实现跳转。Nginx是支持rewrite的(只要在编译的时候没有去掉pcre)
    在http的server里增加rewrite ^(.*) https://$host$1 permanent;
    这样就可以实现80进来的请求,重定向为https了。

    7.如果主站点是https的,那么里面的所有资源就必须都要以https的形式引入,不然浏览器的安全机制就会把这部分资源block掉,导致无法正常运行。

    解决方案有以下几种:

    1.将资源引入形式改成https
    
    2.选择相对协议,也就是说,将头部的http/https去掉,只保留之后的部分,像这样:
    
    <link href="//cdn.bootcss.com/bootstrap/4.0.0-alpha.6/css/bootstrap.min.css" rel="stylesheet">
    这样的好处是浏览器能够根据你的网站所采用的协议来加载文件。

    但是,由于“相对协议”的相对特性,对于本地文件的访问就有一个“坑”:比如,你在电脑上保存了一个 index.html 的页面,这个页面中用相对协议引用了网络上的某个外部资源,你直接用浏览器打开这个html文件是打不开的,因为你浏览本地文件时,浏览器采用的是 file: 协议,file协议无法识别//cdn.bootcss.com/bootstrap/4.0.0-alpha.6/css/bootstrap.min.css这种类型的资源路径,故打不开。

    建议

    在调试阶段用http或者https引入,在部署阶段用相对协议,或者直接在本地建一个服务器,以服务器的形式打开页面,就不会出现浏览器无法加载相对协议下的资源的情况了。

  • 相关阅读:
    DDD 领域驱动设计-谈谈 Repository、IUnitOfWork 和 IDbContext 的实践
    UVA10071 Back to High School Physics
    UVA10071 Back to High School Physics
    UVA10055 Hashmat the Brave Warrior
    UVA10055 Hashmat the Brave Warrior
    UVA458 The Decoder
    UVA458 The Decoder
    HDU2054 A == B ?
    HDU2054 A == B ?
    POJ3414 Pots
  • 原文地址:https://www.cnblogs.com/cosyer/p/8462447.html
Copyright © 2011-2022 走看看