centos7 使用letsEncrypt certbot 生成免费的ssl证书 渐进学习

1、我们将会使用letsencrypt证书颁发机构里的certbot客户端

certbot官网,国内也可访问

https://certbot.eff.org/

2、准备工作,这一步很重要。

  1. 你首先需要有一个解析通过了的域名,什么意思呢,解析过后的域名意味着域名就是ip地址 , ip地址就是域名,我们访问域名如同访问ip地址。
  2. 你的服务器需要安装好一个nginx,并且需要配置好,能够通过http协议 + 域名访问到你的网站。
    这里我们只需要简单配置一下,不要配置复杂了,目地只是为了让certbot能够识别到目标域名。
server {
	listen      80;
    server_name xxx.xxx.xxx;
    root ~/project/dist;
}
#xxx.xxx.xxx是你解析好了的域名
#root后边是你项目的根目录
#配置好后你得要确保浏览器能够访问到你的服务,之后才能进行证书申请

3. 访问certbot官网

  1. 我们选择运行在python环境中的nginx,这里的nginx指的是你的服务是用nginx启动的,后边的pip指的是python环境,意为我们要用pip来安装certbot客户端。
    在这里插入图片描述
  2. 之后的操作不要跟着官网做,往往实现不了。
    官网的第二步中,我们是centos系统,所以选择下边的命令,但是centos的包管理工具是yum,所以我们将dnf换成yum
yum install python3 augeas-libs #安装python3环境,centos7默认是2.x的,版本太低了

在这里插入图片描述
3. 第三步就是先清除本机先前安装的certbot。
官网提供了几个办法,但是都是依赖于各个系统的包管理工具而言的,如果你不是用包管理工具装的,那自然通过官网提供给你的方法就卸载不掉。比如,我的是centos的yum包管理工具,我就可以先清理一下certbot(安装没安装都可以执行以下,不影响), 其他包管理工具的卸载方法都类似。

yum remove certbot
  1. 设置一个python虚拟环境
sudo python3 -m venv /opt/certbot/
sudo /opt/certbot/bin/pip install --upgrade pip
  1. 使用pip下载certbot客户端
sudo /opt/certbot/bin/pip install certbot certbot-nginx
  1. 将环境certbot设置为环境变量,其实就是做了一个软连接。
sudo ln -s /opt/certbot/bin/certbot /usr/bin/certbot
  1. 现在开始生成证书,注意,生成证书之前需要把你之前的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证书就行了。

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;
        }
    }

到这里就完成了!

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值