1.SSL証明書をダウンロードする
Alibaba CloudのSSL証明書を使用していますが、今回はnginxタイプの証明書を使用しています。
![](https://img-blog.csdnimg.cn/img_convert/63632365aff194384585cee6f0ed676e.png)
![](https://img-blog.csdnimg.cn/img_convert/3b5e87637c506b91d05650b630bd04cd.png)
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;
}
}
サーバーに書き込まれたパスの内容が変換されます
例えば
![](https://img-blog.csdnimg.cn/img_convert/3b603c313d87139ad084531970178b17.png)
3. プロジェクト構成 https と http
同社の Java プロジェクトは Springboot を使用していますが、これは p12 証明書しか認識できないため、証明書を変換するにはツールを使用する必要があります。
ツールのダウンロードリンク: https://pan.baidu.com/s/1WKgBRoqQ0PBLrFxcZ5Q8rg
抽出コード:5wz8
インストールが完了したら、現在のディレクトリに移動して操作を完了します。
openssl.exe ファイルをクリックして、次のように入力します: pkcs12 -export -in 証明書名.pem -inkey 秘密鍵名.key -out 変更された名前.p12
![](https://img-blog.csdnimg.cn/img_convert/8f9677b5dd5a0a5748ab5959ba2c11c3.png)
p12 ファイルの生成時にパスワードが必要です。このパスワードは後続の構成で使用されます。入力したパスワードを覚えておいてください。!!
生成された p12 ファイルをプロジェクトにプルします (ここではリソースに置きます)
![](https://img-blog.csdnimg.cn/img_convert/a2c9cf98c472e8c72d09e0f67fc93783.png)
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://img-blog.csdnimg.cn/img_convert/1352c4101f31359db29d8c647915d13c.png)
この時点で、プロジェクトが実行中であることがわかります。
効果を見る
![](https://img-blog.csdnimg.cn/img_convert/8647a753ffad2b8950584056fa74a9d8.png)
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);
}
}
次にプロジェクトを実行して効果を確認します
![](https://img-blog.csdnimg.cn/img_convert/6581dbd6f6a2c578aa779060f5973c85.png)