免费提供SSL证书和免费通配符SSL证书,永久有效

bloger 2019-11-11 PM 136℃ 3条

由于阿里云证数一年需要申请一次,因此整理了一下我正在使用得ssl证数,永远不要再为SSL付费了。点击:SSL免费

这是一个提供永久免费得ssl网站,完全不是打广告,只是单纯的觉得可以帮助到到家,给大家提供一些便利。

{A844122D-8ED2-4CE7-850E-C07F141944EA}_20191111150806.jpg

  • 首先在首页地址栏输入你将要加https的网站地址:比如:phpbloger.com,创建免费的ssl证书,创建之后有3种认证方式,自己选择其中之一,我选得手动认证。
    {97C75032-6F29-45E3-AE8C-3815C1689FEA}_20191111151214.jpg
  • 创建一个名为“ .well-known”的文件夹,下载文件上传至服务器well-known文件夹中

{3E8D5E0A-B8FB-4EC6-8BFB-17EDD9463B53}_20191111151506.jpg

  • 下载证数等待数秒,该网站会生成对应域名的证数。
    {684453F0-767B-4A5A-B5A1-4221683706FA}_20191111151651.jpg
  • 得到证书之后服务器配置,首先将对应证书文件上传至服务器/usr/local/nginx/conf/ssl/目录,自己对应的nginx目录。
cd /usr/local/nginx/conf/ssl/
[root@iZm5e9i40jjxo6mcfsmsoqZ ssl]# ll
total 12
-rw-r--r-- 1 root root 1646 Nov  1 11:11 ca_bundle.crt
-rw-r--r-- 1 root root 1934 Nov  1 11:11 certificate.crt
-rw-r--r-- 1 root root 1707 Nov  1 11:11 private.key
  • 修改Nginx配置文件
server {
  listen 80;
  server_name www.phpbloger.com phpbloger.com;
  access_log /data/wwwlogs/www.phpbloger.com_nginx.log combined;
  error_log  /data/wwwlogs/www.phpbloger,com_error.log;
#ssl文件地址
  ssl_certificate  /usr/local/nginx/conf/ssl/certificate.crt;
  ssl_certificate_key /usr/local/nginx/conf/ssl/private.key;
#ssl监听443接口
  listen 443 ssl;
  index index.html index.htm index.php;
  root /data/wwwroot/www.phpbloger.com;
#301重定向,http链接直接跳转到https
  if ($scheme != https) {return 301 https://www.phpbloger.com$request_uri; }
#301重定向,phpbloger.com跳转www.phpbloger.com
  if ($host != www.phpbloger.com) {  return 301 $scheme://www.phpbloger.com$request_uri;  }
  include /usr/local/nginx/conf/rewrite/typecho.conf;
  #error_page 404 /404.html;
  #error_page 502 /502.html;
  location ~ .*\.(wma|wmv|asf|mp3|mmf|zip|rar|jpg|gif|png|swf|flv|mp4)$ {
    valid_referers none blocked *.phpbloger.com www.phpbloger.com phpbloger.com;
    if ($invalid_referer) {
        return 403;
    }
  }
  location ~ [^/]\.php(/|$) {
    #fastcgi_pass remote_php_ip:9000;
    fastcgi_pass unix:/dev/shm/php-cgi.sock;
    fastcgi_index index.php;
    include fastcgi.conf;
    fastcgi_split_path_info ^(.+?\.php)(/.*)$;
    set $path_info $fastcgi_path_info;
    fastcgi_param PATH_INFO $path_info;
    try_files $fastcgi_script_name =404;
  }

  location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)$ {
    expires 30d;
    access_log off;
  }
  location ~ .*\.(js|css)?$ {
    expires 7d;
    access_log off;
  }
  location ~ /\.ht {
    deny all;
  }
}
  • 重启Nginx
nginx -s reload

长姿势:https是如何完成一次网络通信的?

HTTPS在传输的过程中会涉及到三个密钥:

服务器端的公钥和私钥,用来进行非对称加密

客户端生成的随机密钥,用来进行对称加密

一个HTTPS请求实际上包含了两次HTTP传输,可以细分为8步。
1.客户端向服务器发起HTTPS请求,连接到服务器的443端口

2.服务器端有一个密钥对,即公钥和私钥,是用来进行非对称加密使用的,服务器端保存着私钥,不能将其泄露,公钥可以发送给任何人。

3.服务器将自己的公钥发送给客户端。

4.客户端收到服务器端的公钥之后,会对公钥进行检查,验证其合法性,如果发现发现公钥有问题,那么HTTPS传输就无法继续。严格的说,这里应该是验证服务器发送的数字证书的合法性,关于客户端如何验证数字证书的合法性,下文会进行说明。如果公钥合格,那么客户端会生成一个随机值,这个随机值就是用于进行对称加密的密钥,我们将该密钥称之为client key,即客户端密钥,这样在概念上和服务器端的密钥容易进行区分。然后用服务器的公钥对客户端密钥进行非对称加密,这样客户端密钥就变成密文了,至此,HTTPS中的第一次HTTP请求结束。

5.客户端会发起HTTPS中的第二个HTTP请求,将加密之后的客户端密钥发送给服务器。

6.服务器接收到客户端发来的密文之后,会用自己的私钥对其进行非对称解密,解密之后的明文就是客户端密钥,然后用客户端密钥对数据进行对称加密,这样数据就变成了密文。

7.然后服务器将加密后的密文发送给客户端。

8.客户端收到服务器发送来的密文,用客户端密钥对其进行对称解密,得到服务器发送的数据。这样HTTPS中的第二个HTTP请求结束,整个HTTPS传输完成。

标签: ssl

非特殊说明,本博所有文章均为博主原创。

评论啦~



已有 3 条评论


  1. 幸运星
    幸运星

    非常感谢,提供这么精品和详细的教程

    回复 2019-11-30 21:24
    1. bloger
      bloger 博主

      能够帮到你就最好了!

      回复 2019-12-01 09:15
  2. 有你、
    有你、

    感谢 感谢!very nice!

    回复 2019-11-11 16:19