• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

centos随笔04acme.sh申请httphotoshop证书

武飞扬头像
uikoo9
帮助1

学新通

【前言】

搭建网站的时候,有的网站地址是http://xxx,有的是https://,

两者的不同是https更安全,申请了ssl证书

前几年http类的网站还挺多,目前看基本都是https类网站了,

ssl证书有各种档位,免费,收费每年几百,几千到几万各不同,

如果是自己搭建网站使用免费证书应该够用了,

一般申请免费证书使用acme.sh比较方便

【acme.sh】

github:GitHub - acmesh-official/acme.sh: A pure Unix shell script implementing ACME client protocol 

中文说明:说明 · acmesh-official/acme.sh Wiki · GitHub

acme的意思,大概是ac(证书) me(自己搞定),。。

使用起来比较简单,中英文文档都比较清晰,本文简单记录一下

【前提】

申请ssl证书,将http网址转为https网址的前提是,先有一个http网址可以用,

比如访问http://yourdomain.com可以正常访问

【安装】

安装可以使用curl或者wget,如下

  1.  
    curl https://get.acme.sh | sh -s email=my@example.com
  2.  
     
  3.  
    wget -O - https://get.acme.sh | sh -s email=my@example.com

学新通

安装的过程大概做了这几件事情:

1.下载并解压缩acme

2.提示是否需要socat,如果有自己的服务就不需要

3.安装脚本到/root/.acme.sh文件夹下

4.启动一个cron定时任务 

【申请证书】

安装好后接着就是申请域名对应的ssl证书了,

./acme.sh --issue -d xxx.com --webroot /path/to/your/server

1.需要进入/root/.acme.sh文件夹下

2.执行上述命令

3.前提1:已经有一个可以访问的域名,且服务可以访问到,例如http://xxx.com正常访问

4.--webroot后的path就是你服务器的路径

acme会在你的webroot path下新建一个文件夹.well-known,

然后放一个认证文本,然后通过访问http://xxx.com/.well-known/xxxxx来确认

确认1:你输入的webroot的path正确

确认2:通过访问http的链接可以访问到acme添加的文本

这两个确认完后就会请求好证书

这里注意mvc类的框架一般都会限制可访问的路径,所以需要将.well-known这个访问path添加到mvc框架的白名单内,确保可以访问到

申请完毕后,会在acme.sh文件夹下新建你刚认证的域名文件夹,内部有申请好的证书

学新通

【安装证书】

申请好证书后,需要将证书安装一下,其实就是将证书挪到类似nginx目录下,方便使用

  1.  
    ./acme.sh --installcert -d xxx.com \
  2.  
    --key-file /etc/nginx/conf.d/ssl/xxx.com.key \
  3.  
    --fullchain-file /etc/nginx/conf.d/ssl/xxx.com.cer

【修改https访问配置】

证书申请和安装好后,可以开始配置https的访问了,以nginx为例

可以在nginx的conf目录下新建一个conf文件,内容大致如下

  1.  
    # xxx.com
  2.  
    server {
  3.  
    listen 443;
  4.  
     
  5.  
    server_name xxx.com;
  6.  
     
  7.  
    ssl on;
  8.  
    ssl_certificate /etc/nginx/conf.d/ssl/xxx.com.cer;
  9.  
    ssl_certificate_key /etc/nginx/conf.d/ssl/xxx.com.key;
  10.  
     
  11.  
    location / {
  12.  
    proxy_pass http://127.0.0.1:9001;
  13.  
    }
  14.  
    }

1.https访问默认是443端口,监听443端口 

2.配置了刚申请的ssl证书的位置

3.反向代理到你本地服务的端口

然后reload下nginx

nginx -s reload

这个时候直接访问https://xxx.com就能访问到了,

也能看到浏览器上的小锁子了

学新通

【屏蔽http访问】

此时http和https都可以访问到你的网站,

一般的做法是将http的访问屏蔽掉, 只保留https的访问

在nginx http之前的配置中添加

rewrite ^(.*)$  https://$host$1 permanent;

学新通

就会将http的请求都rewrite到https的请求上

然后nginx -s reload看下效果 

可以看到当你访问http://xxx.com的时候会自动跳转到https://xxx.com

【移除证书】

当某个域名的证书不需要了,需要移除时有几个步骤

1.acme remove

acme.sh --remove -d example.com [--ecc]

目的是移除域名认证 本地的定时服务

2.删除域名相关证书

包括acme下的文件夹和nginx下的证书

3.删除nginx配置

删除上述nginx配置,并reload

【手动renew证书】

虽然acme会安装好定时器,定时去重新认证证书,但是有时会失败,需要手动操作下

  1.  
    # xxx.com
  2.  
    ./acme.sh --renew -d xxx.com --force
  3.  
    ./acme.sh --installcert -d xxx.com \
  4.  
    --key-file /etc/nginx/conf.d/ssl/xxx.com.key \
  5.  
    --fullchain-file /etc/nginx/conf.d/ssl/xxx.com.cer
  6.  
     
  7.  
    # nginx -s reload
  8.  
    nginx -s reload

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhhiegeh
系列文章
更多 icon
同类精品
更多 icon
继续加载