- 获取ssl证书–我们使用LetsEncrypt:
- 进入我们想要存放证书的dir
- wget https://raw.githubusercontent.com/xdtianyu/scripts/master/lets-encrypt/letsencrypt.sh
- chmod +x letsencrypt.sh
- wget https://raw.githubusercontent.com/xdtianyu/scripts/master/lets-encrypt/letsencrypt.conf
- vim letsencrypt.conf
- 编辑为如下:
# only modify the values, key files will be generated automaticly.
ACCOUNT_KEY="letsencrypt-account.key"
DOMAIN_KEY="qingluke.com.key"
DOMAIN_DIR="/www/web/qingluke/public_html/public"
DOMAINS="DNS:qingluke.com"
#ECC=TRUE
#LIGHTTPD=TRUE - ./letsencrypt.sh letsencrypt.conf
- 观察是不是像这样生成成功:
- 其中可能会报错:
安装对应的包就好了:
yum install python-argparse
也有根据服务器类型和版本不同出现不同的错误,比如verifying 网站失败,就先配置nginx服务器(完成下面第2部的abcd) - 确保证书正确的获得后要使用计划任务自动更新:crontab -e
0 0 1 * * 你存放的dir/letsencrypt.sh 你存放的dir/letsencrypt.conf >> 你存放的dir/letsencrypt.log 2>&1 - 然后,service crond restart让计划任务生效非centOS使用对应的重启服务的命令
- 配置NGINX服务器
- 找到我们的nginx.conf:
- 使用我们要配置的那个vim /www/wdlinux/nginx-1.8.1/conf/nginx.conf
- 发现:
后,我们的服务器上跑了很多网站,只用对我们要开https的页面进行配置即可
- vim /www/wdlinux/nginx-1.8.1/conf/vhost/qingluke.com.conf后添加ssl需要的配置:
listen 443 ssl;
ssl on;
ssl_certificate /www/web/qingluke/qingluke.crt;ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers 'ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4'; ssl_prefer_server_ciphers on;
ssl_session_cache builtin:1000 shared:SSL:10m;ssl_session_timeout 10m;
ssl_certificate_key /www/web/qingluke/qingluke.com.key;
- 保存退出后需要检查nginx配置,先找到nginx命令在哪里(不是所有的服务器上的nginx命令都是全局的):
- 使用我们的日常生产nginx加-t:
- 当然,此处有坑需填,像:
这种就是ssl证书没有配置正确,具体问题具体分析,拿着报错信息问度娘、谷哥,用心查都很容易找到办法。 - 好了,当我们的nginx -t命令输出无异常后重启服务器:service nginx restart(使用任何重启该服务的命令都可以...)
- 进入网站查看https链接是否可用
- 找到我们的nginx.conf: