如何配置免费的 https?

axiuno 2017-7-19 3396

https 能大大提高数据传输过程中的安全性,iOS App Store 要求所有的接口请求都必须为 https,https 势在必行,今天我就给大家介绍下如何一个上午搞定 https 。


什么是 https ?

http + SSL (非对称加密协议)= https,不懂的搜索下 RSA 非对称加密。


什么是证书?

所谓的证书其实就是公钥,这个是分发给用户的(由浏览器使用)。私钥存放在服务器上。


知道以上概念后,我们开始一步步进入实际操作环节,配置免费的 https:


1. 申请证书:

阿里云有免费的证书申请:

2. 选择免费证书



3. 补全资料



4. 选择 DNS 验证,验证后会提交审核大概需要一个小时左右。

5. 进入域名的管理中心,解析域名设置,增加域名的一条 TEXT 记录解析,TEXT的值请参考邮件和提示:


6. 下载证书(包含2个文件,xxx.key, xxx.pem)解压后,上传到服务器,并且根据自己的喜好,改一下名字,以 nginx 为例。
[root@xiuno cert]# pwd
/usr/local/nginx/conf/cert
[root@xiuno cert]# ll
total 8
-rw-r--r-- 1 root root 1675 Jul 19 14:54 bbs.xiuno.com.key
-rw-r--r-- 1 root root 3884 Jul 19 14:54 bbs.xiuno.com.pem

xxx.key 是公钥,最后要分发给用户浏览器的,xxx.pem 是私钥存放于服务器,千万不要泄露。


7. 配置 nginx,按照以下格式进行修改,开启  443 端口,并将 80 请求跳转到 443。
server {  
        listen  80;  
        server_name bbs.xiuno.com;  
        rewrite ^(.*)$  https://$host$1 permanent;  
 
server {
        listen       443 ssl;
        server_name bbs.xiuno.com;
        ssl on;
        ssl_certificate      cert/bbs.xiuno.com.pem;
        ssl_certificate_key  cert/bbs.xiuno.com.key;
        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;
        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;
        index index.html index.htm index.php;
        root  /home/xxxxxx;
        access_log  /home/xxxxx.log;
         ....
}


另外一种配置方法:

server
{
        listen       80;
        listen       443;
        server_name  bbs.xiuno.com;
        set $flag 0;
        if ( $request_method ~* "GET" ) { set $flag "${flag}1"; }
        if ( $server_port = "80" ) { set $flag "${flag}2"; }
        #if ( $request_method ~* "GET" && $server_port = '80' )
        if ( $flag = "012" )
        {
                rewrite ^(.*)$  https://$host$1 permanent;
        }
        ssl on;
        ssl_certificate      cert/bbs.xiuno.com.crt;
        ssl_certificate_key  cert/bbs.xiuno.com.key;
        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;
        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;
        
        ...
 }


8. 重启 nginx 服务,搞定。

service nginx restart


最新回复 (14)
  • 虫虫 2017-7-19
    引用 2
    QNAP如何设置
  • 燃烧的冰 2017-7-19
    引用 3
    这个可以有。。
  • Alpha 2017-7-19
    引用 4
    不错不错
  • 汤汤 2017-7-19
    引用 5

    免费证书担心不会长久

    而且国外认不认呢?

  • dasccc 2017-7-20
    引用 6
    阿里云的域名证书不支持泛域名,有效期1年,  大型网站用崩溃掉
  • axiuno 2017-7-20
    引用 7
    有条件的可以购买收费证书,这东西也是一分钱也分货,原则上够用就行。
  • 游客 2017-7-20
    引用 8
    那还是白搭啊,话说1024,为什么还是http没有开启https了,这东西,开于不开各有好处和缺点吧
  • kimwang 2017-7-20
    引用 9
    老大,程序急需通知系统和用户回复列表,请考虑,感谢。
  • 米西丶 2017-9-4
    引用 10
    记录  以后有用
  • 幸运星 2017-11-3
    引用 11
    mark  有用的!
  • FindHao 2017-11-11
    引用 12

    一直在用cloudflare解析。打开开关就是https。。而且感觉cloudflare的减速效果还可以接受

  • 幸运星 8月前
    引用 13
    我下载了证书,到了最后一步如何配置Apache,我按照马爸爸控制台的说明做了,但是没有成功。xiuno程序需要如何操作吗
  • kkkk 8月前
    引用 14
    幸运星 我下载了证书,到了最后一步如何配置Apache,我按照马爸爸控制台的说明做了,但是没有成功。xiuno程序需要如何操作吗
    不需要操作
返回
发新帖