不区分系统centos还是ubuntu,服务器是阿里云的轻量应用服务器。。。
首先要准备好一个已经备案好的域名+服务器+nginx
因为http默认是80端口,https是443端口,所以我们只需要配置80端口,限制访问(返回403),或者设置跳转443/https地址
监听80端口,设置rewrite重定向导https $host:表示的是访问的域名,比如www.rickpro.cn或者ricpro.cn,$1 permanent:表示的是后面的路径,比如/login或者/blog
可以把 tomcat或者项目的端口禁用,比如我的是8080,我防火墙不开这个,就只能通过域名访问了,ip就不可以了
server {
listen 80;
server_name localhost;
rewrite ^(.*) https://$host$1 permanent;
#return 403;
}
b.接下来我们可以监听443,也就是https,在这之前,我们需要配置一些域名的解析以及证书的下载
接下来点击免费开启SSL证书 -》之后点击返回证书列表 -》再点击购买证书(里面会有免费一年的证书)
点击返回证书列表之后,会有一个“购买证书”的按钮,点击他
买好之后。。。回到上一个页面,点击申请,选项尽量选自动生成,比如域名验证方式和CRS生成方式
申请可能需要几分钟,之后下载证书,选择nginx的,下载之后,会有一个压缩包。里面两个文件
把两个文件放入nginx的安装目录下,比如/usr/local/nginx/conf/cert,cert文件夹和nginx.conf同级目录
接下来我们配置nginx。。。复制过去修改一些证书名称/域名就可以了
server {
# 监听80http
listen 80;
# 监听443https
listen 443 ssl;
# 如果有多个域名,可以分多个server配置,这个可以设置二级的www.baidu.cn,也可设置主域名baidu.cn(空格隔开)
server_name www.baidu.cn baidu.cn;
# 下面两个是域名的ssl证书(在阿里云下载域名ssl证书,nginx版本)
ssl_certificate cert/2xxxx_baidu.cn.pem;
ssl_certificate_key cert/2xxx_baidu.cn.key;
ssl_session_cache shared:SSL:1m;
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;
# 这个是根目录,访问项目就可以了 8080端口已经被防火墙禁用了
location / {
proxy_pass http://127.0.0.1:8080/;
}
# 配置项目静态文件
location /files {
alias /usr/local/files/uploaded_files/;
}
}
如果想自动跳转https 或者 禁止ip访问
server {
listen 80;
server_name localhost;
# 如果是使用的IP访问,可以跳转到域名下,也可以禁止访问
if ($host = "106.14.227.91" ){
# return 403;
return https://www.baidu.cn;
}
#如果访问的不是https,可以拼接“https://” 重定向到https去
rewrite ^(.*) https://$host$1 permanent;
}
重启nginx应该就可以,如果重启nginx出现了SSL的问题,可能是安装nginx的时候,没有选择ssl,
可以看下我另一篇文章有说明nginx安装的时候注意事项:https://www.jianshu.com/p/4b0daa1f8899