zl程序教程

您现在的位置是:首页 >  大数据

当前栏目

ECS禅道配置https访问

配置HTTPS 访问 ECS 禅道
2023-09-27 14:25:57 时间
接上一篇文章 阿里云ECS搭建禅道 (https://developer.aliyun.com/article/919151?spm=a2c6h.13148508.setting.12.38ff4f0etKvZK6),这次讲讲禅道如何配置https访问,什么是https?

下载证书
我使用是的Lets Encrypt的免费证书,Let’s Encrypt 是一家免费、开放、自动化的证书颁发机构(CA),为公众的利益而运行。 它是一项由 Internet Security Research Group (ISRG) 提供的服务。Let’s Encrypt官网

Lets Encrypt官方推荐的客户端工具Certbot用起来有点繁琐,比较麻烦,需要依赖Python环境,这里用的是另外一个客户端工具acme.sh,这个比起Certbot来不用依赖Python环境,而且使用和安装都比较简洁,比较推荐。acme.sh相关说明

安装acme.sh

curl https://get.acme.sh | sh -s email=your@example.com

出现下图表示安装成功

图片.png

生成证书
acme.sh 提供了http方式和DNS方式生成,这里选择的是DNS,执行命令:

acme.sh --renew -d yourdomain.com \ --yes-I-know-dns-manual-mode-enough-go-ahead-please

这里会验证这个域名是否真的属于你,需要在你的域名控制台加入TXT解析

图片.png

我的阿里云域名控制台:

图片.png

执行命令,注意这里是--renew:

acme.sh --renew -d yourdomain.com \

 --yes-I-know-dns-manual-mode-enough-go-ahead-please

执行成功后,acme.sh默认下载下来的证书是放在家目录,下的.acme.sh/yourdomain.com下的

图片.png

我们不能直接用这个目录下的证书文件,这个目录是给acme.sh程序内部使用的,目录可能会变,应该拷贝到对应应用目录下,我这里是直接在禅道/opt/zbox/etc/下新建了ssl目录

拷贝命令:

cp -r /root/.acme.sh/pms.catwithfish.cn/* /opt/zbox/etc/ssl

图片.png

配置禅道

因为禅道用的是apache服务器,我们直接修改apache配置,我用的禅道linux一键安装包,路径在/opt/zbox/etc/apache/httpd.conf

修改的地方有两处,新增Listen 443

图片.png

新增443相关配置:

图片.png

 VirtualHost *:443 ServerAdmin zentao@local.net DocumentRoot "/opt/zbox/app/zentao/www/" ServerName localhost# ServerAlias *.xxx.com SSLEngine On SSLCertificateFile /opt/zbox/etc/ssl/pms.catwithfish.cn.cer SSLCertificateKeyFile /opt/zbox/etc/ssl/pms.catwithfish.cn.key SSLCertificateChainFile /opt/zbox/etc/ssl/fullchain.cer Directory "/opt/zbox/app/zentaoep/www" AllowOverride all Require all granted /Directory ErrorLog "/opt/zbox/logs/apache_error_log" CustomLog "/opt/zbox/logs/apache_access_log" combind /VirtualHost 

保存退出vim编辑器,重启禅道

/opt/zbox/zbox restart

至此,通过域名就可以实现https访问禅道了,谷歌浏览器也不会提示非安全连接了

图片.png

遇到的问题
1、在安装acme.sh的时候出现Failed to connect to raw.githubusercontent.com port 443: Connection refused问题应该如何解决?

答:原因:发现是 github 的一些域名的 DNS 解析被污染,导致DNS 解析过程无法通过域名取得正确的IP地址。可以通过修改/etc/hosts文件可解决该问题。

1》打开 https://www.ipaddress.com/ 输入访问不了的域名,获得对应的IP。

2》使用vim /etc/hosts命令打开不能访问的机器的hosts文件,添加如下内容:

199.232.68.133 raw.githubusercontent.com
199.232.68.133 user-images.githubusercontent.com
199.232.68.133 avatars2.githubusercontent.com
199.232.68.133 avatars1.githubusercontent.com
注:上面内容中199.232.68.133是raw.githubusercontent.com所在的服务器IP(通过 https://www.ipaddress.com/ 获知)。

3》保存该文件,再使用即可正常访问。

参考:https://blog.csdn.net/donaldsy/article/details/107482368

2、在安装完acme.sh的时候发现acme.sh --version不能使用,为什么?

答:需要重新打开你的terminal,重新打开之后会正常

图片.png

3、如下图超时,Processing, The CA is processing your order, please just wait. (2/30)超时如何处理?

图片.png

答: acme.sh --set-default-ca --server letsencrypt

这个命令的意思是:acme.sh默认是用的CA提供商是ZeroSSL,而ZeroSSL的服务极其不稳定。

当前acme.sh使用的默认CA机构为zeroSSL,通过--set-default-ca命令,可以修改默认的CA机构,该命令使用--server参数来指定CA机构名称。

切换默认CA为Lets Encrypt:

acme.sh --set-default-ca --server zerossl

4、如下图链接出错,example.com:Verify error:Fetching http://example.com/.well-known/acme-challenge/QM5V1A3LcxZXr12_5gY3Uh1zh1p-7UARBMLhkK_OxKg: Connection refused 这个问题应该如何解决?

图片.png

答:

1》、检查80端口是否被占用

2》、检查防火墙

3》、socat有没有安装以及有没有端口权限

4》、--webroot 路径是否有权限

5、如下图速率限制错误,too many failed authorizations recently应该如何处理?
图片.png

答:这个是lets encrypt的速率限制,貌似没有其他办法,只能等来它取消限制,参考:https://letsencrypt.org/zh-cn/docs/rate-limits/

6、如下图TXT解析错误,Verify error:DNS problem: NXDOMAIN looking up TXT for 应该如何处理?
图片.png

答:请仔细看生成的TXT验证的描述

图片.png

必须要域名和TXT解析值都要对应上acme.sh才能验证通过


Spring Boot配置HTTPS,解决微信小程序上线问题 由于微信小程序在体验版和上线版本,需要用https连接,所以你需要申请一个域名,并为这个域名申请证书。怎么利用acme.sh免费申请证书在上篇文章有提到利用acme.sh免费建立https连接,这里就记录一下Spring Boot中配置HTTPS,再利用Docker进行部署。
CTO技术共享 专注大数据、架构框架、集群、中间件、分布式、数据库、监控、开源、基础架构等技术分享,助力数字化转型。