HTTPS Certbot
CA认证
采用https的服务器必须从CA (Certificate Authority)申请一个用于证明服务器用途类型的证书。该证书只有用于对应的服务器的时候,客户端才信任此主机。 CA是证书的签发机构,它是PKI的核心。CA是负责签发证书、认证证书、管理已颁发证书的机关。它要制定政策和具体步骤来验证、识别用户身份,并对用户证书进行签名,以确保证书持有者的身份和公钥的拥有权。 如果用户想得到一份属于自己的证书,他应先向 CA 提出申请。在 CA 判明申请者的身份后,便为他分配一个公钥,并且 CA 将该公钥与申请者的身份信息绑在一起,并为之签字后,便形成证书发给申请者。 但是申请证书是收费的(按年),少则一两千,多则七八千。Let’s Encrypt
Let’s Encrypt 是 一个叫 ISRG ( Internet Security Research Group ,互联网安全研究小组)的组织推出的免费安全证书计划。参与这个计划的组织和公司可以说是互联网顶顶重要的先驱,除了前文提到的三个牛气哄哄的发起单位外,后来又有思科(全球网络设备制造商执牛耳者)、 Akamai 加入,甚至连 Linux 基金会也加入了合作,这些大牌组织的加入保证了这个项目的可信度和可持续性。安装系统对应的Web服务器
sudo yum install certbot python2-certbot-nginx
证书生成
从源码安装的Nginx需要添加相关软链接才能被Certbot找到
# Nginx可执行程序的连接至/usr/local/bin/nginx
ln -s /usr/local/nginx/sbin/nginx /usr/local/bin/nginx
# Nginx的配置文件链接
ln -s /usr/local/nginx/conf/ /etc/nginx
①生成证书并修改Nginx配置
sudo certbot --nginx
②生成证书,不修改Nginx配置
输入A同意:它会在letsencrypt这个网站上注册账号。然后下一步:
sudo certbot certonly --nginx
Certbot 会帮启动一个定时任务,在证书过期时自动更新。
sudo certbot renew --dry-run
Certbot 会启动一个临时服务器来完成验证(会占用80端口或443端口,因此需要暂时关闭 Web 服务器),然后 Certbot 会把证书以文件的形式保存,包括完整的证书链文件和私钥文件。 不同的系统,不同的软件,安装命令也不尽相同,直接参照官方文档操作
certbot certonly --cert-name example.com