Web 应用协议从 http 升级到 https。
一、Web 应用升级
- 本地环境生成协议SSL/TLS 证书
bash
keytool -genkeypair -keyalg RSA -keysize 2048 -storetype PKCS12 -keystore keystore.p12 -validity 3650
- 配置 Spring Boot 应用
yaml
server:
port: 8080 # HTTPS 端口
ssl:
enabled: true
key-store: classpath:keystore.p12 # keystore 文件路径,通常放在 resources 文件夹中
key-store-password: your_password # keystore 密码
key-store-type: PKCS12 # keystore 类型
key-alias: tomcat # keystore 中的 key 别名
二、nginx
- 获取 SSL/TLS 证书
bash
openssl genpkey -algorithm RSA -out server.key
openssl req -new -key server.key -out server.csr
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
- 配置
xml
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /path/to/certificate.crt;
ssl_certificate_key /path/to/private.key;
# 其他 HTTPS 配置...
}
三、常见问题
- HTTPS 可以访问 HTTP 吗?
HTTPS 页面本身不能直接访问 HTTP 页面,浏览器会阻止这种混合内容(Mixed Content)的请求。
- HTTP 可以访问 HTTPS 吗?
HTTP 页面可以重定向到 HTTPS 页面。这是实现 HTTP 到 HTTPS 的迁移过程中常见的做法,通过 301 重定向,自动将 HTTP 请求转向 HTTPS。