记录一次个人网站更新遇到的问题

31 阅读2分钟

1. gateway和应用之间出现问题

图便宜买了两台NAT的服务器,每台服务器只能开放10个端口映射,本来想的是用 Nacos 搭配上 Gateway,这样只需要开放一个gateway的端口就行了,但是万万没想到出现个各种奇怪的问题

  1. 给应用添加ip和port
spring:
  cloud:
    nacos:
      discovery:
        ip: http://example.com
        port: 9527
        secure: true
  1. 给gateway添加SSL支持
server:
    port: 9999
    ssl:
        enabled: false
        # 项目中的证书文件位置
        # key-store: classpath:cert/example.net.jks
        # jks 文件路径 用线上的地址也可以
        #key-store: https://cdn.example.net/example.net.jks
        #key-store: http://upyuncdn.example.net/example.net.jks
        key-store-password: password
        # 密码
        key-store-type: JKS

搞了一天不是这错就是那错的,再加上jar是运行在NAT服务器上的, 各种问题,最后gateway和jar都不使用SSL了,然后gateway部署在正常云服务器上, jar还是在NAT,这样nginx配置location的时候只需要配置一个gateway行了

2. Email发送邮件失败

在windows上开发的好好的,到了ubuntu系统上就出现奇怪的问题了 No appropriate protocol (protocol is disabled or cipher suites are inappropriate

经过一顿查询之后应该是jdk缺少了 TLSV1.2

  1. 查询JDK安装位置
update-alternatives --list java
  1. 进入到java目录中修改 java.security
cd /usr/lib/jvm/java-11-openjdk-amd64/conf/security
  1. 备份 java.security
cp /etc/java-11-openjdk/security/java.security /etc/java-11-openjdk/security/java.security_bak
  1. 修改
vim java.security
# :737 跳转到737行 或者搜索下边的内容
# /jdk.tls.disabledAlgorithms 
# 删除即可
SSLv3, TLSv1, TLSv1.1,
  1. 验证是否更改成功
# 创建空文件
touch TLSVersionTest。java
# 使用vim或者nano复制进入保存
import javax.net.ssl.SSLSocket;
import javax.net.ssl.SSLSocketFactory;
import java.io.IOException;

public class TLSVersionTest {
    public static void main(String[] args) {
        try {
            SSLSocketFactory factory = (SSLSocketFactory) SSLSocketFactory.getDefault();
            SSLSocket socket = (SSLSocket) factory.createSocket("smtp.qq.com", 465);
            String[] supportedProtocols = socket.getSupportedProtocols();
            System.out.println("Supported TLS protocols:");
            for (String protocol : supportedProtocols) {
                System.out.println(protocol);
            }
            socket.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
# 编译文件
javac TLSVersionTest.java
java TLSVersionTest
# 查看是否输出 TSLV1.2

  1. 重启应用