Nginx服务器安装SSL证书
前言
本来自己部署的几个站点都是使用http协议,用的好好的,就省去了https还需要安装ssl证书的步骤。但是在使用hexo的时候,我的个人博客是强制使用https访问的,hexo文章引用的外链图片如果是http协议,那么就会无法加载,当然也有解决办法,就是将网站改为http访问就可以了,毫无疑问这种解决方式并不优雅。如今http2已经被广泛使用,浏览器也默认使用https协议,我也决定将自己的几个站点升级为https
申请SSL证书
因为本人是在aliyun注册的域名,所以就在aliyun免费申请SSL证书,免费证书有效期是1年,证书到期前,需要重新申请新的证书,其他平台也支持免费申请SSL证书,申请方法参考,这里就不赘述了哈
安装SSL证书
下载SSL证书
将需要安装的证书下载解压,里面包含.key私钥文件和.pem证书文件,也可以重命名文件方便区分他们是哪个域名的证书
拷贝SSL证书
将私钥文件和证书文件拷贝到nginx配置文件所在的目录下,linux可以使用ftp工具或者scp命令来拷贝文件,这里不再赘述啦,我的配置文件所在的目录是/etc/nginx
,所以我放到了/etc/nginx/cert
中,如果没有cert这个文件夹可以自己创建,也可以自己命名。
这里的路径仅供参考,请将文件放到自己nginx的实际配置路径下,如果不知道可以使用命令
nginx -h
查看
配置Nginx
接下来就是修改配置文件nginx.conf
,下面是我的nginx配置文件的部分内容,请根据自己实际情况修改,修改后使用命令nginx -t
查看配置文件是否有误,确认无误后使用nginx -s reload
重新加载一下就可以了
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
# default
server {
listen 80;
server_name chdxia.com;
location / {
root /usr/share/nginx/html;
index index.html;
}
}
# jenkins
server {
# 监听端口
listen 443 ssl;
# 监听域名
server_name jenkins.chdxia.com;
# 证书文件路径
ssl_certificate cert/jenkins.chdxia.com.pem;
# 私钥文件路径
ssl_certificate_key cert/jenkins.chdxia.com.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
# 加密套件
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
# 反向代理
location / {
proxy_pass http://ip:port;
proxy_redirect default;
proxy_read_timeout 90;
proxy_set_header Host $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;
}
}
# http重定向到https
server {
listen 80;
server_name jenkins.chdxia.com;
return https://jenkins.chdxia.com;
}
# lrtest
server {
# 监听端口
listen 443 ssl;
# 监听域名
server_name lrtest.chdxia.com;
# 证书文件路径
ssl_certificate cert/lrtest.chdxia.com.pem;
# 私钥文件路径
ssl_certificate_key cert/lrtest.chdxia.com.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
# 加密套件
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
# 前端静态web页面
location / {
root lrtest-web/dist;
try_files $uri $uri/ /index.html;
index index.html index.htm;
}
# 后端api反向代理
location /api/v1 {
proxy_pass http://ip:port;
proxy_redirect default;
proxy_read_timeout 90;
proxy_set_header Host $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;
}
}
# http重定向到https
server {
listen 80;
server_name lrtest.chdxia.com;
return https://lrtest.chdxia.com;
}
}
本文作者:chdxia
本文链接:https://www.cnblogs.com/chdxia/p/16523346.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步