申请永久免费的HTTPS证书

随着互联网安全越来越被重视,几乎所有的大网站都已经默认启用了https协议,浏览器输入http网址也会自动跳转到https,比如百度、腾讯、搜狗、谷歌等等 。简单来说就是https协议数据更加安全,只有收发双方通过加密解密算法才能知道数据,中间人拦截到的都是加密后的,没有密钥是无法解密的 。
一个https的加密解密过程会用到两种算法:
1,非对称加密RSA:
私钥加密,公钥解密 。公钥加密,私钥解密 。就是说一共俩密钥,收发双方,各有一个 。
非对称加密可以加密的数据量比较小,用来把第二步要用到的对称加密的密钥进行加密解密 。
2,对称加密:使用同一个密钥,用来加密解密 。通过第一步的公钥,解出来对称加密的密钥,用这个密钥对传输数据加密,服务器端解密 。
现在微信小程序,IOS开发等很多地方都要求接口必须是https的 。所以我整理一个免费获取https证书的步骤:
首先,你要有一个域名,域名现在也很便宜,有一个linux服务器 。这些某某云都能买到 。
linux以centos为例,其他的也都类似 。安装Nginx(这个不解释,如果这个也不知道是啥,就肯定也不会去申请https) 。
【申请永久免费的HTTPS证书】然后免费https证书提供商最著名的https://letsencrypt.org/

申请永久免费的HTTPS证书

文章插图
 
点击Get Started按钮
申请永久免费的HTTPS证书

文章插图
 
看红色框标记处,这里会用到另外一个网站Certbot 。
letsencrypt网站是提供https证书,certbot网站是提供一个自动化工具,强烈推荐使用,这个工具可以自动解析nginx配置文件,并把证书下载下来,然后自动修改nginx配置文件里的https配置,最重要的是letsencrypt的免费证书是3个月有效期,certbot工具可以到期帮你自己更新证书,免去了你自己忘了重新申请证书,造成https证书过期 。
ssh到linux以后,执行yum install certbot Python3-certbot-nginx,如果不是root用户登录,执行sudo yum install certbot python3-certbot-nginx 。如果是python版本很低,或者yum库里的cerbot版本是基于python2的,那么certbot的nginx插件是python2的命令就改为yum install certbot python2-certbot-nginx即可
在nginx中配置好域名
server {listen80;server_namewww.*****.com; #自己的域名root/usr/share/nginx/html;include /etc/nginx/default.d/*.conf;location / {}error_page 404 /404.html;location = /40x.html {}error_page 500 502 503 504 /50x.html;location = /50x.html {}}然后执行certbot --nginx,非root用户执行sudo certbot --nginx
申请永久免费的HTTPS证书

文章插图
 
按照步骤填写邮箱,然后yes yes,就会自动读取你本地的nginx的配置了,会列出来本地的所有的nginx里配置的域名,然后根据自己的情况填写域名序号就行了,比如我这个就填1就是第一条域名
稍等片刻,申请成功,密钥文件的路径都会在提示里显示出来 。
申请永久免费的HTTPS证书

文章插图
 
再次打开nginx的配置文件,发现里面的变化,主要是做了两部分工作,第一把原来的域名改为了443端口,https,配置上证书路径,第二部分,80端口监听自动跳转到https
server {server_namewww.***.com;root/usr/share/nginx/html;# Load configuration files for the default server block.include /etc/nginx/default.d/*.conf;location / {}error_page 404 /404.html;location = /40x.html {}error_page 500 502 503 504 /50x.html;location = /50x.html {}listen 443 ssl; # managed by Certbotssl_certificate /etc/letsencrypt/live/xiaochengxu.txcf77.com/fullchain.pem; # managed by Certbotssl_certificate_key /etc/letsencrypt/live/xiaochengxu.txcf77.com/privkey.pem; # managed by Certbotinclude /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbotssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot}server {if ($host = www.***.com) {return 301 https://$host$request_uri;} # managed by Certbotlisten80;server_namexiaochengxu.txcf77.com;return 404; # managed by Certbot}执行nginx -s reload,重新加载nginx配置文件 。
输入原来的http://www.***.com域名,自动跳转到https,并且旁边提示一个小锁,说明正常跳转了https,大功告成!
申请永久免费的HTTPS证书

文章插图
 
 
查看证书信息,可看到证书有效期只有3个月 。
申请永久免费的HTTPS证书

文章插图


推荐阅读