为什么要使用HTTPS证书
使用HTTPS证书非常重要,以下是几个关键原因:
-
加密通信
HTTPS在HTTP的基础上加入了SSL/TLS协议,为数据传输提供了加密功能。这意味着所有从用户浏览器到服务器之间的信息交换都是加密的,无法被第三方轻易解读,确保了数据的机密性和安全性。
-
身份验证
HTTPS证书帮助网站向访问者证明其身份,确保用户访问的是他们想要访问的网站,而不是一个假冒的或欺诈性的网站。这对于防止“中间人攻击”尤其重要。
-
提升信任度
对于企业用户来说,使用OV(组织验证)或EV(扩展验证)SSL证书可以更加提升网站的可信度,EV SSL证书甚至可以在浏览器地址栏显示企业名称,有利于企业品牌的宣传和建立用户的信任感。
-
提高搜索引擎排名
搜索引擎如谷歌已经表明,HTTPS是其排名算法中的一个正面因素。因此,使用HTTPS证书的网站可能会在搜索结果中获得更好的位置。
-
遵守法规要求
某些地区的法律法规要求网站必须使用HTTPS来保护用户数据的安全,尤其是在处理敏感信息(如信用卡信息、个人身份信息等)时。
-
防止内容篡改
HTTPS还提供了数据完整性保护,确保数据在传输过程中没有被篡改。
-
提升品牌形象
对于现代互联网用户来说,看到一个网站使用HTTPS已经成为安全的标志。不使用HTTPS的网站可能会让用户感到不安全,从而影响品牌形象。看到HTTS有这么多用处,没有拥抱HTTPS的网站赶紧武装起来吧。
前提条件
配置https证书前,需要做如下准备:
-
域名
首先申请一个域名,然后做域名备案,这些各大云厂商都支持,购买域名并做备案即可。
-
服务器
购买一台云服务器,并绑定公网IP,使得外网可以访问,一般情况下,在各大云厂商购买ECS服务器的时候附带购买弹性公网IP(可选择按带宽或流量计费)。
-
域名解析
有了域名和服务器之后,需要做域名解析,将指定的域名请求解析到主机服务器做一个映射,这样访问域名的时候就会请求到这台服务器。
以上这些不清楚的可以自行搜索解决,然后我们在服务器上安装软件部署应用就可以对外提供服务了。这里我以CentOS7系统、Nginx Web服务器讲解如何配置Let’s Encrypt免费的HTTS证书。
Nginx可在https://nginx.org/en/download.html网站下载合适的版本,安装教程网上很多,这里不再赘述了,但是安装的时候注意,默认安装配置是不支持https 、ssl的,所以安装的时候要添加支持,可以使用命令./configure --with-http_ssl_module
,再执行make&& make install
进行安装。否则后面配置Let’s Encrypt证书的时候他会检测nginx对https和ssl支持情况,不支持的话会报错。
Certbot方式一站式安装Let’s Encrypt HTTPS证书
Certbot方式安装非常简单,根据提示一直下一步就可以自动完成,当然也可以生成证书后手工安装,图个方便我们就自动一站式完成配置吧。
官网地址:https://certbot.eff.org进入官网后,在红框处软件选择Nginx,系统选择CentOS 7即可。
选择后就会跳转到对应的配置教程页面。这里列的就是安装要求,比如必须要支持能用命令行终端SSH登录到服务器,并且服务器上的80端口要开着。
snapd安装
官方是推荐通过snapd安装Certbot,所以先安装snapd。点击install snapd跳转到snapd的安装页,链接:https://snapcraft.io/docs/installing-snapd。
直接跳过pre-installed,点击CentOS这个链接正式进入snap的安装。
EPEL安装
因为我是CentOS7,点开“Adding EPEL to CentOS 7”执行命令。
sudo yum install epel-release
等待下载安装,没有报错的话,最后会输出“Complete!”,代表安装成功。
snapd安装
执行命令:
sudo yum install snapd
等待下载安装,没有报错的话,最后会输出“Complete!”,代表安装成功。
-
snapd安装完成后,需要启用snapd连接socket。
sudo systemctl enable --now snapd.socket
-
snap建立软连接。
sudo ln -s /var/lib/snapd/snap /snap
输入“snap –help”命令,如果正常输出用法信息则snap安装成功。
Certbot安装
安装前移除已有的Certbot安装包
sudo yum remove certbot
安装Certbot
执行命令:
sudo snap install --classic certbot
如果报错“error: too early for operation, device not yet seeded or device model not acknowledged”,则可以先退出再重新登录一次(或者重启服务器)即可。
Certbot安装完成后,建立一个certbot命令软连接。
sudo ln -s /snap/bin/certbot /usr/bin/certbot
一站式http证书安装
首先确保服务器上的nginx是启动的,然后执行命令:
sudo certbot --nginx
如果报错如下:说明certbot没有找到nginx配置文件,certbot默认找“/etc/nginx/nginx.conf”,所以可以把nginx安装目录下的所有文件可以复制到“/etc/nginx”这个目录下(如果没有这个目录需要手工创建)即可。
nginx重新启动,带配置文件“nginx -c /etc/nginx/nginx.conf”。然后certbot他会检测nginx的配置,找出有多少个域名需要配置https。直接回车就是全部域名都要配置https,可以单个选择,也可以选择多个(逗号或空格分隔)。接下来会让输入邮箱用户接受通知,填自己的邮箱即可,剩下的基本都是回车即可,最终完成https证书的生成,certbot会自动修改/etc/nginx/nginx.conf配置文件的内容,加入对443端口的监听和ssl证书的配置,如下:
这个就是certbot自动修改的,并且加入了注释“# managed by Certbot”。
对之前自己配置的监听80端口,他会自动修改成301重定向到https。
至此https配置完成,需要重新reload一下nginx才生效,执行命令“nginx -s reload”访问一下域名看看,小锁图标加上了,浏览器报告连接是安全的。
续期
免费的证书有效期是3个月,时间到之后证书就无效了,所以需要续期,同时certbot也贴心的给了自动续期的方案。只需要执行命令:
sudo certbot renew --dry-run
他会自动生成定时任务,文档中说是可能在以下几个位置:
-
/etc/crontab/ -
/etc/cron./ -
systemctl list-timers
我找了一下发现在这里,续期的这个目前没测过,等证书到期后看是否会自动续吧。打完收工!
总结
本篇只是简单的介绍了下关于免费https证书的配置,可以作为学习用途,商业使用时一般都会购买正式的https证书,由运维去配置,原理和过程基本是一样的。
欢迎关注公众号,欢迎分享、点赞、在看
原文始发于微信公众号(小新成长之路):免费HTTPS证书配置指南,亲测有效!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/238248.html