当前位置:   article > 正文

超级简单acme证书申请,不用dns配置,自动续期,个人网站首选

acme证书

安装条件:

  1. curl https://get.acme.sh | sh
  2. alias acme.sh=~/.acme.sh/acme.sh

准备:

(1)将域名的解析指向服务器,并且服务器开启80端口的http服务

(2)准备acme需要目录

./nginx/html/.well-known/acme-challenge

1 指定初始化

方式一:通过指定dns

acme.sh --issue --server letsencrypt --dns dns_dp -d huisiban.com www.huisiban.com  --webroot /usr/local/nginx/html

方式二:通过自定webroot,(推荐)

acme.sh --issue --server letsencrypt  -d huisiban.com -d www.huisiban.com --webroot /usr/local/nginx/html

2 安装

执行下面的命令会生成证书文件相关的key和pem,改为你自己的路径和文件名

acme.sh --install-cert -d huisiban.com -d www.huisiban.com  --key-file /usr/local/nginx/certs/www.huisiban.com.key --fullchain-file /usr/local/nginx/certs/www.huisiban.com.pem

重要:acme.sh默认开启证书自动更新,acme官方默认60天左右,保证支持crontab

检查系统是否支持crontab ,通过crontab可以查看当前的证书定时任务,下面是我服务器上的

  1. [root@VM-16-2-opencloudos ~]# crontab -l
  2. */5 * * * * flock -xn /tmp/stargate.lock -c '/usr/local/qcloud/stargate/admin/start.sh > /dev/null 2>&1 &'
  3. 51 0 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/nul

3 自动更新

这条命令acme自身自动更新

acme.sh --upgrade --auto-upgrade

4 证书申请完成后,就可以配置https 443 服务了

比如我的网站汇思班

  1. server {
  2. listen 80;
  3. server_name huisiban.com www.huisiban.com;
  4. rewrite ^(.*)$ https://www.huisiban.com$1 permanent;
  5. }
  6. server {
  7. listen 443 ssl;
  8. server_name huisiban.com www.huisiban.com;
  9. ssl_certificate /usr/local/nginx/certs/www.huisiban.com.pem;
  10. ssl_certificate_key /usr/local/nginx/certs/www.huisiban.com.key;
  11. ssl_session_cache shared:SSL:1m;
  12. ssl_session_timeout 5m;
  13. ssl_ciphers HIGH:!aNULL:!MD5;
  14. ssl_prefer_server_ciphers on;
  15. client_max_body_size 20m;
  16. client_body_buffer_size 128k;
  17. gzip on;
  18. gzip_buffers 32 4K;
  19. gzip_comp_level 6;
  20. gzip_min_length 100;
  21. gzip_types application/javascript text/css text/xml application/font-woff;
  22. gzip_disable "MSIE [1-6]\.";
  23. if ( $host = 'huisiban.com') {
  24. rewrite ^/(.*)$ https://www.huisiban.com/$1 permanent;
  25. }
  26. location ^~ /.well-known/acme-challenge/ {
  27. default_type "text/plain";
  28. root /usr/local/nginx/html;
  29. }
  30. location ~ ^/upload/(.*)\.(png|jpg|jpeg|gif)$ {
  31. root /opt/img;
  32. expires 5d;
  33. set $img_width -;
  34. set $img_height -;
  35. # 获取参数size的值
  36. if ($arg_size ~* "^(\d+)x(\d+)$") {
  37. set $img_width $1;
  38. set $img_height $2;
  39. }
  40. # 裁剪图片并且调整大小
  41. image_filter resize $img_width $img_height;
  42. image_filter_jpeg_quality 25;
  43. image_filter_buffer 10M;
  44. }
  45. location ~ ^/upload/(.*)\.(ico|webp)$ {
  46. root /opt/img;
  47. }
  48. location /fastcms.html {
  49. alias /usr/local/nginx/html;
  50. # 此处的 @router 实际上是引用下面的转发,否则在 Vue 路由刷新时可能会抛出 404
  51. try_files $uri $uri/ @router;
  52. # 请求指向的首页
  53. index index.html index.htm;
  54. }
  55. location /fastcms {
  56. alias /usr/local/nginx/html;
  57. }
  58. location /fastcms/api {
  59. proxy_pass http://127.0.0.1:8085;
  60. proxy_set_header Host $host;
  61. proxy_set_header X-Real-IP $remote_addr;
  62. }
  63. location / {
  64. proxy_pass http://127.0.0.1:8085;
  65. proxy_set_header Host $host;
  66. proxy_set_header X-Real-IP $remote_addr;
  67. }
  68. # 由于路由的资源不一定是真实的路径,无法找到具体文件
  69. # 所以需要将请求重写到 index.html 中,然后交给真正的 Vue 路由处理请求资源
  70. location @router {
  71. rewrite ^.*$ /index.html last;
  72. }
  73. }

 参考文章:acme证书申请 - 汇思班 (huisiban.com) 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/640085
推荐阅读
相关标签
  

闽ICP备14008679号