一、SSL证书
证书的申请自行百度。我使用的是腾讯云,有免费的证书,申请完后把证书下载下来。
腾讯云下载下来的证书包含5个内容:
Apache文件夹:Apache证书文件
IIS文件夹:IIS证书文件
Nginx文件夹:Nginx证书文件
Tomcat文件夹:tomcat证书文件
www.xxx.com.csr文件:文件是申请证书时由您上传或系统在线生成的,提供给 CA 机构。安装时可忽略该文件。
根据你的需要选择需要使用的证书。我们要在nginx开启https,所以选择nginx文件夹中的证书。
二、Nginx服务器证书安装
准备好了证书文件,连接上了你的服务器后,我们开始配置。
1、拷贝证书到服务器
Nginx文件夹中的文件:
- 1_www.xxx.com_bundle.crt:证书文件
- 2_www.domain.com.key:私钥文件
将这两个文件拷贝到服务器的nginx安装目录的conf文件夹里。你也可以拷到自己希望存的位置,如果是这样在配置的时候,文件前面要加上路径。
2、编辑nginx的配置文件
使用命令打开nginx的配置文件:
vim /usr/local/nginx/conf/nginx.conf
下面就开始来配置具体内容:
server {
#SSL 访问端口号为 443
listen 443;
#填写绑定证书的域名
server_name www.xxx.com;
#启用 SSL 功能
ssl on;
#证书文件名称
ssl_certificate 1_www.xxx.com_bundle.crt;
#私钥文件名称
ssl_certificate_key 2_www.xxx.com.key;
ssl_session_timeout 5m;
#请按照以下协议配置
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
#请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
location / {
#网站主页路径。此路径仅供参考,具体请您按照实际目录操作。
root /var/www/www.xxx.com;
index index.html index.htm;
}
}
3、配置完之后看一下是否成功
在nginx根目录下,通过命令验证配置文件是否有问题:
./sbin/nginx -t
如果现实Successfully,则代表成功
三、负载均衡到tomcat服务器
我们的nginx可能做了负载均衡服务器,如果我们不想再给tomcat配置证书的话,我们就需要增加些配置,来保证可以正常访问。
nginx的conf的配置如下:
location ^~ /aaa/ {
proxy_pass http://tomcat;
proxy_set_header Host $http_host;
proxy_set_header ?X-Real-IP ?$remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
我们需要在location里面配置proxy_set_header X-Forwarded-Proto $scheme;
然后去tomcat去配置,打开tomcat的server.xml文件:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
scheme="https"
proxyName="www.listergray.xyz"
proxyPort="443"/>
注意上面的配置,在tomcat本来的配置上新添了一些配置,这些配置告诉tomcat它前面的是https代理。
配置完这些项目就可以正常访问了。
写在最后:
- 如果文章中有错误或是表达不准确的地方,欢迎大家评论中指正,以便我完善。
- 文章我也会根据所学到新的知识不断更新。
网友评论