liujia 发布的文章

在RequestTracker(RT)里用msmtp通过远程smtp服务器465端口发邮件

SoftLayer(IBM Cloud)过滤了TCP 25端口,Vultr的也可能过滤了,越来越多的云服务商主动屏蔽了25端口的通讯。

阿里云对新建的ECS实例,也过滤了25端口。

RequestTracker的工单系统,邮件通知是重要的需求之一,当阿里云ECS实例不能使用25端口发信时,可以尝试配置msmtp使用远程的smtp 465端口来发邮件。

环境:Deiban 8,RT 4.4.2, RT安装在 /opt/rt4 的路径
国内某免费的企业邮箱:smtp服务器地址,smtp.exmail.qq.com;SSL端口:465;邮箱地址:rt@anqun.org

过程:

  1. /opt/rt4/etc/msmtp_wrapper.conf # 在RT配置目录中创建 msmtp 的配置文件,文件属主是web进程用户,即www-data,权限是600,内容如下:

    defaults
    port 465
    tls on
    tls_trust_file /etc/ssl/certs/ca-certificates.crt
    # logfile ~/.msmtp.log
    
    account qmail
    host smtp.exmail.qq.com
    from rt@anqun.org
    auth on
    user rt@anqun.org
    password NiDeMiMa
    # auto_from on
    tls_starttls off
    
    # Set a default account
    account default : qmail
  2. /opt/rt4/etc/msmtp_wrapper # 在RT文件配置目录中创建Shell文件,文件属性是web进程用户,即www-data,且有执行的权限,+x,内容如下:

    /usr/bin/msmtp -t -C /opt/rt4/etc/msmtp_wrapper.conf
    /usr/bin/logger -t RTmailer -p syslog.info -- CALL /usr/bin/msmtp -nt "$@" RETURNED $?
  3. /opt/rt4/etc/RT_SiteConfig.pm # 在RT的自定义配置文件中,加入以下一行内容,让RT使用msmtp来发信:

    Set( $SendmailPath, '/opt/rt4/etc/msmtp_wrapper');

  4. 重启Web服务,以让新的设置生效,测试发信正常

参考:

手动校验SSL证书私匙和证书是否匹配

一般我们申请免费证书时,如阿里云的单域名证书,是自动生成CSR文件,不需自行创建,审核通过后,会收到证书文件(.crt 或 .pem)和私匙文件(*.key)。

如选择自行生成CSR文件(一般同时还会生成.key文件),提交给机构审核认证后,会获取到证书文件。

问题:apache 启动时提示私匙和证书不匹配。

[Thu Nov 16 21:24:39.816853 2017] [ssl:emerg] [pid 11120] AH02238: Unable to configure RSA server private key
[Thu Nov 16 21:24:39.816868 2017] [ssl:emerg] [pid 11120] SSL Library Error: error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch

过程:

  1. openssl x509 -noout -text -in /etc/pki/tls/certs/localhost.crt -modulus # 验证证书文件,记下 modulus 的值
  2. openssl rsa -noout -text -in /etc/pki/tls/private/localhost.key -modulus # 验证私匙文件,记下 modulus 的值
  3. 对比两者的值,如果相符就可以了

参考:

迁移ECS云服务器(阿里云)

阿里云11月10日前的“双11爆款”活动,其中低配的“三个1”(1核1GB内存1Mbps)的机型,三年付是720元,对于我的博客来说,很值。所以,计划之前用了约五年的,续费约九百元/年的ECS实例替换。

过程:

  1. 查看旧机配置,为新机选型作参考
  2. 查看旧机数据盘使用情况,将数据复制到系统盘中,因为新机不打算购买数据盘
  3. 为旧机系统盘打快照
  4. 为旧机快照创建自定义镜像
  5. 订购新机时,选择“自定义镜像”
  6. 将域名解析到新机的公网IP

在 CentOS 7 系统里安装 squid

过程:

  1. yum update # 更新
  2. yum install squid # 安装 squid
  3. vi /etc/squid/squid.conf # 编辑 squid 的配置文件,将默认的 3128 端口替换成其它,如 3888,http_port 3888,且在添加上用户的IP地址,允许访问 squid,如 acl localnet src x.x.x.x/32
  4. systemctl restart squid # 重启 squid 服务
  5. systemctl stop firewalld # 停止 CentOS 7 的默认防火墙服务
  6. 在阿里云ECS实例安全组规则里,放行相应的端口,如本例的 3888 端口
  7. 在用户的浏览器里填写相应的 http 代理连接信息
  8. 浏览器里测试,可用

参考:https://www.liquidweb.com/kb/how-to-install-squid-caching-proxy-on-centos-7/