初始环境
腾讯云服务器
阿里云域名 + 阿里云免费SSL
docker环境
Nginx服务器
ps: Nginx挂着主机目录很重要,可以参考我之前的配置教程
传送门 ———> Docker一站式配置Nginx【图文教程】
传送门 ———> Docker一站式配置Nginx【图文教程】
传送门 ———> Docker一站式配置Nginx【图文教程】
申请SSL证书
登录阿里云,搜索SSL
申请成功后点击下载(由于我的是Nginx服务器,下载Nginx相关证书)
解压并更改名称后得到两个文件(key 和 pem)
查看Nginx挂载目录
docker inspect nginx
我的配置文件挂载目录为 "/usr/nginx/config/:/etc/nginx/",
那么就可以在这里进行配置Nginx
首先在/usr/nginx/config/
下创建cert
文件夹,用于存放证书文件
我这里已经创建并上传,不再重复创建上传
[root@VM-12-11-centos config]# cd /usr/nginx/config/
[root@VM-12-11-centos config]# pwd
/usr/nginx/config
[root@VM-12-11-centos config]# ls
cert conf.d fastcgi_params mime.types modules nginx.conf scgi_params uwsgi_params
[root@VM-12-11-centos config]#[root@VM-12-11-centos config]# cd cert/
[root@VM-12-11-centos cert]# ls
part_wenmeng.key part_wenmeng.pem wenmeng.key wenmeng.pem
编写Nginx认证HTTPS配置文件
java项目访问配置
server {
listen 443 ssl;
#配置HTTPS的默认访问端口为443。
#如果未在此处配置HTTPS的默认访问端口,可能会造成Nginx无法启动。
#如果您使用Nginx 1.15.0及以上版本,请使用listen 443 ssl代替listen 443和ssl on。
server_name part.wenmeng.online; #需要将yourdomain替换成证书绑定的域名。
ssl_certificate cert/part_wenmeng.pem; #需要将cert-file-name.pem替换成已上传的证书文件的名称。
ssl_certificate_key cert/part_wenmeng.key; #需要将cert-file-name.key替换成已上传的证书私钥文件的名称
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
#表示使用的加密套件的类型。
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3; #表示使用的TLS协议的类型。
ssl_prefer_server_ciphers on;
location / {
proxy_pass https://54.4.44.56:9999; #服务器内网地址
add_header Access-Control-Allow-Origin *;
}
}
静态文件配置(其中location
中内容不同)
server {
listen 443 ssl;
#配置HTTPS的默认访问端口为443。
#如果未在此处配置HTTPS的默认访问端口,可能会造成Nginx无法启动。
#如果您使用Nginx 1.15.0及以上版本,请使用listen 443 ssl代替listen 443和ssl on。
server_name part.wenmeng.online; #需要将yourdomain替换成证书绑定的域名。
ssl_certificate cert/part_wenmeng.pem; #需要将cert-file-name.pem替换成已上传的证书文件的名称。
ssl_certificate_key cert/part_wenmeng.key; #需要将cert-file-name.key替换成已上传的证书私钥文件的名称
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
#表示使用的加密套件的类型。
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3; #表示使用的TLS协议的类型。
ssl_prefer_server_ciphers on;
location / {
charset utf-8;
default_type 'text/html';
root /usr/share/nginx/html/online;
index index.html;
add_header Access-Control-Allow-Origin *;
}
}
将http转为HTTPS请求配置
server {
listen 80;
server_name part.wenmeng.online; //更换为你的域名
rewrite ^(.*)$ https://part.wenmeng.online; //更换为你的域名
}