1、我们将会使用letsencrypt证书颁发机构里的certbot客户端
certbot官网,国内也可访问
https://certbot.eff.org/
2、准备工作,这一步很重要。
- 你首先需要有一个解析通过了的域名,什么意思呢,解析过后的域名意味着域名就是ip地址 , ip地址就是域名,我们访问域名如同访问ip地址。
- 你的服务器需要安装好一个nginx,并且需要配置好,能够通过http协议 + 域名访问到你的网站。
这里我们只需要简单配置一下,不要配置复杂了,目地只是为了让certbot能够识别到目标域名。
server {
listen 80;
server_name xxx.xxx.xxx;
root ~/project/dist;
}
#xxx.xxx.xxx是你解析好了的域名
#root后边是你项目的根目录
#配置好后你得要确保浏览器能够访问到你的服务,之后才能进行证书申请
3. 访问certbot官网
- 我们选择运行在python环境中的nginx,这里的nginx指的是你的服务是用nginx启动的,后边的pip指的是python环境,意为我们要用pip来安装certbot客户端。
- 之后的操作不要跟着官网做,往往实现不了。
官网的第二步中,我们是centos系统,所以选择下边的命令,但是centos的包管理工具是yum,所以我们将dnf换成yum
yum install python3 augeas-libs #安装python3环境,centos7默认是2.x的,版本太低了
3. 第三步就是先清除本机先前安装的certbot。
官网提供了几个办法,但是都是依赖于各个系统的包管理工具而言的,如果你不是用包管理工具装的,那自然通过官网提供给你的方法就卸载不掉。比如,我的是centos的yum包管理工具,我就可以先清理一下certbot(安装没安装都可以执行以下,不影响), 其他包管理工具的卸载方法都类似。
yum remove certbot
- 设置一个python虚拟环境
sudo python3 -m venv /opt/certbot/
sudo /opt/certbot/bin/pip install --upgrade pip
- 使用pip下载certbot客户端
sudo /opt/certbot/bin/pip install certbot certbot-nginx
- 将环境certbot设置为环境变量,其实就是做了一个软连接。
sudo ln -s /opt/certbot/bin/certbot /usr/bin/certbot
- 现在开始生成证书,注意,生成证书之前需要把你之前的nginx停掉,不能让他启动,而且,nginx的配置必须是全局的,意思就是你在终端的任何目录下输入nginx -v都不会报错,当然如果你没有把nginx命令放在系统变量里,你也可以通过如下命令指定nginx的配置文件路径,但是会报一堆文件找不到的错,不过好在我解决了,这里我真心不推荐你们使用这种办法,与其这样不如把nginx装成全局的。
#不推荐,指定nginx配置文件的路径
certbot --nginx --nginx-server-root=/some/other/path/nginx/conf
#推荐
sudo certbot certonly --nginx
输入上边的命令后会让你确认几次,前边的输入y(yes)就行,最后一个是让你选择需要生成证书的域名,这个域名不是我的,就不给大家看了。
生成完成之后证书会自动存放在/etc/letsencrypt/live
下,生成证书的域名会有一个文件夹在这里边,比如刚才你为aa.com.cn生成了一个证书,那在/etc/letsencrypt/live
下就会有一个aa.com.cn的文件夹,证书就放在里边。
4. 配置https协议(添加ssl证书)
编辑你的nginx.conf文件。在原来的基础上添加一个ssl证书就行了。文章来源:https://www.toymoban.com/news/detail-431883.html
server {
listen 443 ssl;
server_name xxx.xxx.com.cn;
error_log logs/xxx_error.log;#错误日志文件
access_log logs/xxx_access.log;#访问日志文件
#ssl证书
ssl_certificate /etc/letsencrypt/live/xxx.xxx.com.cn/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/xxx.xxx.com.cn/privkey.pem;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA;
ssl_session_cache shared:SSL:50m;
ssl_prefer_server_ciphers on;
root /root/nft/nft_backend_ui; #项目的根目录
location ~ ^/art-auction/ {
proxy_pass http://127.0.0.1:9000; 文件服务地址
}
#转发到后端
location ~ ^/api/(portal|system|common|user)/ {
rewrite ^/api/(.*)$ /$1 break;
proxy_pass http://127.0.0.1:9999;
}
}
到这里就完成了!文章来源地址https://www.toymoban.com/news/detail-431883.html
到了这里,关于centos7 使用letsEncrypt certbot 生成免费的ssl证书 渐进学习的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!