一、准备工作

1、先安装nginx
  https://files.cnblogs.com/files/blogs/676936/nginx-1.18.0.sh #nginx-1.18.0版安装脚本
2、在阿里云配置域名解析(DNS)

二、安装SSL证书

先将需要添加SSL证书的域名配置到nginx.conf

server {
  server_name www.aa.com;
  listen 80;
  location / {
    root html;
    index index.html index.htm;
  }
}

1、操作系统CentOS7以上版本安装方式(安装certbox)

yum install epel-release-latest-7.noarch.rpm -y        #/yum安装epel
yum install certbot python2-certbot-nginx -y #yum安装 Certbot
yum -y install certbot #安装certbot
certbot -h #查看是否安装成功
certbot certonly --webroot -w /usr/local/nginx/html -d www.aa.com #证书生成,需要填写信息,邮件地址、A(同意)、Y
#证书生成地址:/etc/letsencrypt/live/www.aa.com
为多个域名添加证书:certbot certonly --webroot -w /usr/local/nginx/html -d 域名

2、操作系统CentOS7以下版本安装方式(安装certbox-auto)

wget https://dl.eff.org/certbot-auto
mv certbot-auto /usr/local/bin/certbot-auto
chown root /usr/local/bin/certbot-auto
chmod 0755 /usr/local/bin/certbot-auto
/usr/local/bin/certbot-auto certonly --nginx #自动检测域名,获取ssl证书
##选择需要添加的域名即可
为多个域名添加证书:certbot-auto certonly --nginx --no-self-upgrade

方式1、2生成证书后都需要修改nginx.conf配置文件:

server {
  listen 443 ssl;
  server_name www.aa.com;
  ssl_certificate /etc/letsencrypt/live/www.aa.com/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/www.aa.com/privkey.pem;   location / {
    root html;
    index index.html index.htm;
  }
}
ssl_certificate file;     #当前虚拟主机使用PEM格式的证书文件;
ssl_certificate_key file; #当前虚拟主机上与其证书匹配的私钥文件;
修改完记得重载nginx配置文件:/usr/local/nginx/sbin/nginx -s reload

三、证书续期

certbot常用命令:
certbot [子命令] [选项] [-d 域名]
(默认) run:获取并安装证书到当前网页服务器;
certonly:获取或更新证书,但是不安装;
renew :更新已经获取但快过期的所有证书; -d 域名列表:指定证书对应的域名列表,域名之间使用逗号分隔;
--apache:使用Apache插件进行身份认证和安装
--standalone:运行一个独立的网页服务器用于身份认证
--nginx:用Nginx插件进行身份认证和安装
--webroot:把身份认证文件放置在服务器的网页根目录下;
–manual: 使用交互式或脚本钩子的方式获取证书;
-n:非交互式运行;
--test-cert:从预交付服务器上获取测试证书
–-dry-run:测试获取或更新证书,但是不存储到本地硬盘; --force-renew:强制更新证书
–-disable-hook-validation:更新前检查错误,如有错误将不会执行更新操作

证书管理:

certbox certificates  #显示使用Certbot生成的所有证书的信息,包括过期时间
certbox revoke: #撤销证书;
certbot revoke --cert-path /etc/letsencrypt/archive/www.mydomain.com/cert1.pem
certbox delete:删除证书;
certbot-auto --no-self-upgrade --force-renew certificates
      #查看证书信息 --force-renew 强制更新 --no-self-upgrade 不更新letsencrypt
撤销证书:
certbox revoke --cert-path /etc/letsencrypt/archive/www.mydomain.com/cert1.pem #撤销证书
   输入"y"确定撤销证书
certbox delete #删除证书
   然后选择一个需要删除的证书即可

证书续期:

certbot生成证书有3个月期限,到期需要续期,
自动续期:crontab -e #写到定时任务
0 3 */7 * * /usr/bin/certbot renew --force-renew --renew-hook "/usr/local/nginx/sbin/nginx -s reload"
0 3 */7 * * /usr/local/bin/certbot-auto renew --no-self-upgrade --force-renew --renew-hook "/usr/local/nginx/sbin/nginx -s reload"

四、报错解决

报错1:File "/opt/rh/rh-python36/root/usr/lib64/python3.6/ssl.py", line 689, in do_handshake
执行:pip install --upgrade --force-reinstall 'requests==2.6.0' urllib3
报错2:"Could not find a usable 'nginx' binary. Ensure nginx exists, the binary is executable, and your PATH is set correctly
需要将nginx放到环境变量中
  ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx
  ln -s /usr/local/nginx/conf/ /etc/nginx
繁华尽去,小时候逃离的地方,却是长大后再也回不去的远方。

最新文章

  1. 5.建造者模式(Builder Pattern)
  2. INTERPRETER(解释器)
  3. 【英语】Bingo口语笔记(14) - 表示“不愉快”
  4. Struts2输入校验
  5. 纠错《COM技术内幕》之ProgID
  6. (3两个例子)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
  7. java 常见的几种运行时异常RuntimeException
  8. Dynamics CRM2016 在实体命名时需要注意的事项
  9. Android 推送和统计最优轮循(心跳策略)探究实践
  10. iOS开发中数据持久化
  11. ArcGIS JavaScript API4.8 底图选择的几种方案
  12. day63 django-模板语言
  13. [android] 手机卫士绑定sim卡
  14. 【第五篇】SAP ABAP7.5x新语法之命名规约
  15. startup_MK64F12.s文件解析
  16. php页面静态化,ob缓存方法
  17. 原生JS实现new方法、new一个对象发生的四部、new里面常用的优先级
  18. 注册vue组件的几种方式
  19. OC最基础的系统转场动画
  20. Freeze partial parameters while training

热门文章

  1. Xrdp - 通过Windows的RDP连接Linux远程桌面(Ubuntu/CentOS/Redhat 7)
  2. 1.5 RPM红帽软件包1.6 Yum软件仓库
  3. ceph总结复习
  4. redis 基本操作命令
  5. openssl自签发证书
  6. 004:ZYNQ_AXI总线学习笔记(1)
  7. [leetcode] 33. 搜索旋转排序数组(Java)
  8. AI推理与Compiler
  9. APA自动泊车系统
  10. JUC 并发编程--11, AQS源码原理解析, ReentrantLock 源码解读