手把手教你如何免费让自己的网站开启https

DusNoob 2018-10-25 431

一、获取证书

我们去 FreeSSL 获取,打开如下图所示:


品牌选择:随便选一个,只要是免费的就行,我选了Let's Encrypt,然后输入自己的域名,点击创建免费的SSL证书,进入如下图的页面:

证书类型:就用默认的RSA就行,具体RSA和ECC的区别,网上搜到是这么说的:证书类型选择ECC。这里主要是选择数字签名的算法,对于普通用户使用默认的ECC即可。如果需要根据自己的具体情境来选择,一般有以下选择依据:

(1) RSA签名算法适合于:Verify操作频度高,而Sign操作频度低的应用场景。比如,分布式系统中基于capability的访问控制就是这样的一种场景。
(2) ECDSA签名算法适合于:Sign和Verify操作频度相当的应用场景。比如,点对点的安全信道建立。

验证类型:选DNS,和文件验证具体的区别如下:

1.DNS。  CA(Certificate Authority 数字证书认证机构)将通过查询 DNS 的 TXT 记录来确定您对该域名的所有权,因此需要在域名管理平台将生成的 TXT 记录名与记录值添加到该域名下。
2.文件。CA 将通过访问特定 URL 地址来验证您是否有改域名的所有权。因此,您需要下载给顶的验证文件,并上传到您的服务器。

CSR生成:选浏览器生成。一般的浏览器都支持Web Cryptography,直接使用默认的浏览器生成最方便。

都选好后,输入自己的邮箱,点击创建,会生成如下图页面所示的DNS验证信息:

接下来,我们打开阿里云域名管理那里,在域名解析新建TXT解析记录,如下图:




点击验证,验证通过后就会出现证书文件的页面,下载到本地,证书就获取完成了。

二、上传证书到服务器,并配置nginx支持

* 把证书上传到服务器这里就不展开了,一个scp命令的的事情,重点来看下nginx的配置。

贴出我的配置:

server {
    #listen       80;  // 原先http的时候,是80端口,先把这个给注释掉
    listen      443 ssl;  // 新增443端口兼听,https是443端口
    server_name  www.dusnoob.com dusnoob.com;  // 用原先的不变
    ssl_certificate /alidata/xxxxx/full_chain.pem; // 新增证书公钥地址
    ssl_certificate_key /alidata/xxxxx/private.key; // 新增证书私钥地址
    index  index.php index.html index.htm;
    root   /alidata/www/xxxxxx;
    charset utf-8;
    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        #try_files $uri $uri/ /index.php?$args;
    }

    error_page  404 = http://dusnoob.com;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    location ~ \.php$ {
        #root           html;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
    keepalive_timeout 70;
    ssl_session_timeout 5m; // 网上ssl有很多配置,优化的可以具体研究,这里不展开了

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    location ~ /\.ht {
        deny  all;
    }
}

// 新增这里配置原先http的访问时,直接重定向到新的https,这样就兼容了,原先的网址
server {
        listen      80;
        server_name    www.dusnoob.com dusnoob.com;
        rewrite ^(.*)$ https://dusnoob.com$1 permanent;
}

然后重启nginx 使用生效。输入网址,看是不是已经是https了,而且浏览器上不再展示不安全这三个醒目的字了。

最后需要注意下阿里云后台的的安全组里面,有没有添加443端口的规则,没有加上就可以了。

最新回复 (0)
    • 都市菜鸟网
      2
        立即登录 立即注册 
返回