centos随笔04acme.sh申请httphotoshop证书
【前言】
搭建网站的时候,有的网站地址是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,如下
-
curl https://get.acme.sh | sh -s email=my@example.com
-
-
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目录下,方便使用
-
./acme.sh --installcert -d xxx.com \
-
--key-file /etc/nginx/conf.d/ssl/xxx.com.key \
-
--fullchain-file /etc/nginx/conf.d/ssl/xxx.com.cer
【修改https访问配置】
证书申请和安装好后,可以开始配置https的访问了,以nginx为例
可以在nginx的conf目录下新建一个conf文件,内容大致如下
-
# xxx.com
-
server {
-
listen 443;
-
-
server_name xxx.com;
-
-
ssl on;
-
ssl_certificate /etc/nginx/conf.d/ssl/xxx.com.cer;
-
ssl_certificate_key /etc/nginx/conf.d/ssl/xxx.com.key;
-
-
location / {
-
proxy_pass http://127.0.0.1:9001;
-
}
-
}
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会安装好定时器,定时去重新认证证书,但是有时会失败,需要手动操作下
-
# xxx.com
-
./acme.sh --renew -d xxx.com --force
-
./acme.sh --installcert -d xxx.com \
-
--key-file /etc/nginx/conf.d/ssl/xxx.com.key \
-
--fullchain-file /etc/nginx/conf.d/ssl/xxx.com.cer
-
-
# nginx -s reload
-
nginx -s reload
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhhiegeh
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
微信运动停用后别人还能看到步数吗
PHP中文网 07-22