来自星星的码农 - 个人博客

来自星星的码农 - 个人博客

申请免费SSL证书

一、使用便宜SSL获取证书

  • 进入便宜SSL官网,如果没有账号就先去注册一个

  • 在SSL证书系列中选择免费测试版本 image

  • 输入域名,一定要注意,写错了是不能修改的,然后提交生成CSR
    image

  • 验证是否对域名拥有管理权,有三种方式(邮箱验证、DNS CNAME、文件上传),由于邮箱验证要用它指定的邮箱,我就用上传文件这种方法,这个因人而异。

  • 将证书打包下载下来,根据你的服务器来选择 ,我的是nginx image

  • 将Nginx目录下的server.crt与server.key这两个文件复制到服务器nginx配置文件nginx.conf同目录下 image

  • 修改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