nginx は https を構成し、Java プロジェクトに対して https と http の同時アクセスを実装します。

1.SSL証明書をダウンロードする

Alibaba CloudのSSL証明書を使用していますが、今回はnginxタイプの証明書を使用しています。

2. nginx で SSL 証明書を設定する

nginx.confファイルを変更する

server{

    listen 443 ssl; #需要去阿里云安全组开放443端口
    server_name 你的域名;
    charset utf8;
    # ssl on; 
    ssl_certificate  存放文件的路径/xxxxx.pem;
    ssl_certificate_key 存放文件的路径/xxxxx.key;
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;

    location /verify {
            root   html;
            index  index.html index.htm;
    }

}

サーバーに書き込まれたパスの内容が変換されます

例えば

3. プロジェクト構成 https と http

同社の Java プロジェクトは Springboot を使用していますが、これは p12 証明書しか認識できないため、証明書を変換するにはツールを使用する必要があります。

ツールのダウンロードリンク: https://pan.baidu.com/s/1WKgBRoqQ0PBLrFxcZ5Q8rg

抽出コード:5wz8

インストールが完了したら、現在のディレクトリに移動して操作を完了します。

openssl.exe ファイルをクリックして、次のように入力します: pkcs12 -export -in 証明書名.pem -inkey 秘密鍵名.key -out 変更された名前.p12

p12 ファイルの生成時にパスワードが必要です。このパスワードは後続の構成で使用されます。入力したパスワードを覚えておいてください。

生成された p12 ファイルをプロジェクトにプルします (ここではリソースに置きます)

application.yml ファイルを構成する

server:
  #此处的端口是https使用的
  port: 8080
  #此处的端口是http使用的
  http-port: 3072
#证书配置
  ssl:
    key-store-type: "PKCS12"        #指定KeyStore的实现类型
    key-store: classpath:spark.p12   #存放位置
    key-store-password: 密码         #制作证书时输入的密码

プロジェクトを実行する

この時点で、プロジェクトが実行中であることがわかります。

効果を見る

https および http アクセス用のプロジェクト

ポートを介して同じプロジェクトを制御し、アクセス用に https または http を実装します (プロジェクトの要件に従って動作します)

TomcatServerConfig.class ファイルを作成する

/**
 * @author: MM
 * @date: 2023-02-14 15:59
 * 同一个项目即可以实现http访问又可以通过https访问
 */
@Component
public class TomcatServerConfig implements WebServerFactoryCustomizer<TomcatServletWebServerFactory> {
    @Value("${server.http-port}")
    public Integer httpPort;
    @Override
    public void customize(TomcatServletWebServerFactory factory) {
        Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
        connector.setScheme("http");
        connector.setPort(httpPort);
        factory.addAdditionalTomcatConnectors(connector);
    }
}

次にプロジェクトを実行して効果を確認します

おすすめ

転載: blog.csdn.net/weixin_53799443/article/details/129447964