书接上篇,申请了一个域名证书,给了4个文件,
- yourdomain.com.cer(公钥)
- yourdomain.com.key(私钥)
- youdomain.com.csr(生成证书时需要用的)
- RapidSSL RSA CA 2018.cer(根证书)
在服务器上实现https的2种方式
1、不使用nginx,需要配置springboot
2、使用nginx,则springboot不需要配置
这里着重讲一下nginx里的配置方法:
#强制使用https,即客户端输入http://yourdomain.com也会强制跳转到https://yourdomain.com
server {
listen 80;
server_name yourdomain.com;
add_header Strict-Transport-Security max-age=15768000;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name yourdomain.com;
# 下面ssl开头的是HTTPS相关的设置
ssl on;
ssl_certificate ../cert/yourdomain.com.cer;
ssl_certificate_key ../cert/yourdomain.com.key;
ssl_session_timeout 5m;#session有效期,根据需要适当延长
ssl_session_cache shared:SSL:10m;
# 使用的加解密方式
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 / {
# 单个服务
proxy_pass http://127.0.0.1:8443/;
# 负载均衡
# proxy_pass http://yourServers/;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
}
}
测试参数是否正确:nginx -t
停止nginx,然后重启。
如果访问不了,请检查一下443端口是否对外开放了。
springboot项目就不需要再做证书的设置了,跟正常的项目没有区别