申请免费SSL证书
一、使用便宜SSL获取证书
进入便宜SSL官网,如果没有账号就先去注册一个
在SSL证书系列中选择免费测试版本
输入域名,一定要注意,写错了是不能修改的,然后提交生成CSR
验证是否对域名拥有管理权,有三种方式(邮箱验证、DNS CNAME、文件上传),由于邮箱验证要用它指定的邮箱,我就用上传文件这种方法,这个因人而异。
将证书打包下载下来,根据你的服务器来选择 ,我的是nginx
将Nginx目录下的server.crt与server.key这两个文件复制到服务器nginx配置文件nginx.conf同目录下
修改nginx.conf配置文件,找到listen 80; 将端口改为443,并在后面添加如下配置
ssl on; ssl_certificate server.crt; ssl_certificate_key server.key; ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers ECDH:AESGCM:HIGH:!RC4:!DH:!MD5:!aNULL:!eNULL; ssl_prefer_server_ciphers on;
修改完重启nginx(一定要重启),这时候可以用https访问你的网站了
如果配置成功了,这时候再用http访问就会报错,因为http默认走的是80端,这时候做个代理就可以了
server { listen 80; server_name abc.com; #这里修改为你的网站域名 rewrite ^(.*)$ https://$host$1 permanent; }
二、使用Certbot获取证书
CA的证书提供商有许多个,有收费的有免费的,而Let’s Encrypt就是其中之一的免费提供商,官网。
安装完成后执行certbot
1、安装certbot
yum install certbot python2-certbot-nginx
2、生成证书
自动下载证书并配置nginx
certbot --nginx
手动配置
certbot certonly --nginx
然后输入邮箱、同意协议、输入域名等,然后生成证书
3、配置nginx
找到listen 80;
将端口改为443,并在后面添加如下配置
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/xsphehe.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/xsphehe.com/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot