certbot在Centos7上配置合法签名证书,实现nginx的https访问

咖菲猫-李常明笔记

公司因之前使用的openssh创建的自签名证书,有一个弊端,就是在某些客户端上不能使用此证书,无法使用https连接,所以,研究了一下certbot 做签名证书!

certbot的官网地址:

https://certbot.eff.org/

1、制作证书前的准备:

你需要有一个公网地址,并绑定合法域名

2、开始制作:

(1)、下载Certbot客户端:

wget https://dl.eff.org/certbot-auto

(2)、下载后,进入下载的目录,添加执行权限

chmod   a+x   ./certbot-auto

3、介绍一下certbot的两种工作方式:

(1)、 standalone 方式: certbot 会自己运行一个 web server 来进行验证。如果我们自己的服务器上已经有 web server 正在运行 (比如 Nginx 或 Apache ),用 standalone 方式的话需要先关掉它,以免冲突。

(2)、webroot 方式: certbot 会利用既有的 web server,在其 web root目录下创建隐藏文件, Let’s Encrypt 服务端会通过域名来访问这些隐藏文件,以确认你的确拥有对应域名的控制权。

4、我使用的是webroot方式,自己搭建一个nginx服务器,配置location字段,如下:

(1)、使用rpm安装nginx

sudo  yum  -y  install  nginx

(2)、编辑nginx的配置文件,修改以下参数:

在http 段范围

(3)、修改完nginx配置文件后,使用nginx  -t命令,测试配置文件语法:

sudo  nginx   -t 

#返回OK  表示配置文件修改成功

(4)、启动nginx服务

sudo  nginx
netstat  -anplut  | grep  80    #检测80端口,是否在监听

(5)、使用certbot-auto命令,生成证书

./certbot-auto certonly --webroot -w /usr/share/nginx/html/ -d  [填写合法域名的地址]

#-w   表示  nginx中指定的root 网站根目录的路径

(6)、上述命令执行成功后,返回以下界面:

从上图中可以看到,会在/etc/letsencrypt/live下 生成你的域名的文件夹,并且目录下会有此文件:

[[email protected] ~]$ tree /etc/letsencrypt/
/etc/letsencrypt/
├── accounts
│?? └── acme-v01.api.letsencrypt.org [error opening dir]
├── archive [error opening dir]
├── csr
│?? └── 0000_csr-certbot.pem
├── keys [error opening dir]
├── live
│?? └── kafeimao.com (别名,最终,看自己域名)
│??     ├── cert.pem -> ../../archive/kafeimao.com/cert1.pem
│??     ├── chain.pem -> ../../archive/kafeimao.com/chain1.pem
│??     ├── fullchain.pem -> ../../archive/kafeimao.com/fullchain1.pem
│??     ├── privkey.pem -> ../../archive/kafeimao.com/privkey1.pem
│??     └── README
├── options-ssl-apache.conf
├── options-ssl-nginx.conf
├── renewal
│?? └── kafeimao.com.conf
├── renewal-hooks
│?? ├── deploy
│?? ├── post
│?? └── pre
└── ssl-dhparams.pem

12 directories, 10 files

nginx的https 访问,需要用到 上述两个 pem的证书文件:

5、测试配置nginx支持https访问,测试 https的证书是否可用:

server {
        listen       443 ssl http2 default_server;
        listen       [::]:443 ssl http2 default_server;
        server_name  kafeimao.com;
        ssl           on;
        ssl_certificate "/etc/letsencrypt/live/kafeimao.com/fullchain.pem";
        ssl_certificate_key "/etc/letsencrypt/live/kafeimao.com/privkey.pem";
#        ssl_session_cache shared:SSL:1m;
#        ssl_session_timeout  10m;
#        ssl_ciphers HIGH:!aNULL:!MD5;
#        ssl_prefer_server_ciphers on;
# Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        location / {
                root  /usr/share/nginx/html/kafeimao.com;
                index  index.html;
        }

        error_page 404 /404.html;
            location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }
  }

6、重载nginx服务;

sudo   nginx  -s  reload

7、访问域名,测试https连接:

8、发现证书是可用的,值得祝贺,你已经成功了!  非常简单

总结:

certbot默认注册的证书 ,有效期是90天, 需要更新证书

使用命令进行更新:

(1)、手动更新

./certbot-auto  renew   -v

(2)、自动更新

./certbot-auto  renew  --quiet  --no-self-upgrade

在注册证书时,如果遇到此错误:

这个错误,跟命令中使用了webroot方式,(官网也推荐这种方式)所以,nginx里要配置正确的location字段,就是server中的配置;

此文仅做个笔记,没有什么深奥的东西,咖菲猫一直在前进;

原文地址:http://blog.51cto.com/keep88/2054523

时间: 2025-01-02 16:55:44

certbot在Centos7上配置合法签名证书,实现nginx的https访问的相关文章

转【翻译】如何在Ubuntu 12.04上配置Apache SSL证书

关于SSL证书 SSL证书是加密站点信息和创建一个更安全的连接的一种方式.另外,证书可以向站点访问者展示VPS的身份信息.证书颁发机构颁发SSL证书,用来验证服务器的详细信息,而一个自签名的证书缺乏第三方机构的证明. 设置 以下教程,需要拥有VPS上root权限. 另外,你的虚拟服务器上需要安装并运行有apache.如果没有安装,可以通过以下命令安装: sudo apt-get install apache2 第一步--启用SSL模块 下一步启用SSL sudo a2enmod ssl 紧接着重

在CentOS7上配置Open vSwitch和VXLAN

在CentOS7上配置Open vSwitch和VXLAN 环境 实验环境 主机环境 [[email protected] ~]$ uname -a Linux node0 3.10.0-123.9.3.el7.x86_64 #1 SMP Thu Nov 6 15:06:03 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux [[email protected] ~]$ cat /etc/redhat-release CentOS Linux release 7.0

在CentOS7上配置RabbitMQ 3.6.3集群与高可用

在CentOS7上配置RabbitMQ 3.6.3集群与高可用 集群概述 通过 Erlang 的分布式特性(magic cookie 认证节点)进行 RabbitMQ 集群,各 RabbitMQ 服务为对等节点,即每个节点都提供服务给客户端连接,进行消息发送与接收. 这些节点通过 RabbitMQ HA 队列(镜像队列)进行消息队列结构复制.本文中搭建 3 个节点,并且都是磁盘节点(所有节点状态保持一致,节点完全对等),只要有任何一个节点能够工作,RabbitMQ 集群对外就能提供服务. 环境

在 CentOS7 上配置 nginx 虚拟主机

创建配置文件保存目录,其中 sites-available 用来实际保存配置文件,sites-enabled 用来保存符号链接 : mkdir /etc/nginx/sites-available mkdir /etc/nginx/sites-enabled 修改nginx配置文件 /etc/nginx/nginx.conf 使其包含符号链接虚拟主机文件,在 http {} 区块结束前加上如下内容: include /etc/nginx/sites-enabled/*.conf; 设置虚拟主机配

centos7上配置mysql8的双主互写

注意:1.主库1:10.1.131.75,主库2:10.1.131.762.server-id必须是纯数字,并且主从两个server-id在局域网内要唯一. [主节点1]vi /etc/my.cnf[mysqld]log-bin=mysql-binserver-id=2019001log_slave_updates=1 重启服务service mysqld restart [主节点2]vi /etc/my.cnf[mysqld]log-bin=mysql-binserver-id=2019002

【Nginx】使用certbot安装免费https证书使Nginx支持Https请求

certbot官网:https://certbot.eff.org/lets-encrypt/centosrhel7-nginx 一.安装步骤 1)安装certbot,执行  sudo yum install certbot python2-certbot-nginx 2)检查是否安装成功,执行  certbot --help [[email protected] ~]# certbot --help Traceback (most recent call last): File "/usr/b

nginx 支持 https 访问的配置——完整配置文件

关于https的介绍网上很多了,就不啰嗦了. 配置支持https的访问需要nginx安装了ssl模块.其次是要准备ssl证书,nginx版的证书包含了crt文件和key文件,这个ssl证书一般是从认证服务提供商那里申请.假定nginx服务已经准备妥当,现在需要增加https访问的支持,只需要修改一下nginx的虚拟主机配置文件就可以了. 先看完整的配置文件内容吧,重要的几个地方有写注释. # your.domain.name.conf # 这一块是监听 80 端口的访问请求,也就是http的访问

caffe在centos7上配置与搭建的过程

1.首先从官网下载OpenCV和boost这两个库,这两个库介绍的文档比较多,这里就不想详细的说明他们的编译安装过程了.搞不定这个的童鞋可以百度下如何进行安装这两个库, 这两个库的路径我使用了默认的路径. 2.然后我我们进行安装libtools和autoconf还有automake几个坑爹的工具,这几个工具一直在不稳定的更新中,反正大家将就着用吧.安装过程./configure,然后make -j8,这个是多线程进行编译,然后make install就可以了. 3.接下来安装pkgconfig这

第五篇:Centos7上配置docker容器ssh登录

1.查看httpd容器是否运行2.启动httpd容器3.默认情况下,我们只能在宿主机上通过如下方式连接容器说明:这是在宿主机连接容器直接有效的方法 我们能够通过容器的IP地址连接容器呢?需要了解Docker daemon的运行机制 Docker daemon是一个docker服务端组件,它是以Linux后台服务进程运行 Docker daemon程序运行在 Docker host 上,负责创建.运行.监控容器,构建.存储镜像 默认配置下,Docker daemon 只能响应来自本地 Host 的