Nginx服务器上安装SSL证书
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
Nginx服务器上安装SSL证书
1、前提条件
- 服务器已经开启了443端口(HTTPS服务的默认端口)
- 服务器上已安装了http_ssl_module模块
2、nginx安装http_ssl_module模块
2.1 查看是否安装过http_ssl_module
进入nginx安装目录执行如下命令
./nginx -V
若出现“–with-http_ssl_module”说明已经安装过否则继续执行下列步骤
2.2 进入nginx源文件目录
cd /usr/local/nginx/nginx-1.18.0/
2.3 重新编译nginx
./configure --with-http_ssl_module
再执行如下命令
make
这里一定不要执行make install,否则会覆盖掉原来的nginx
2.4 用新的nginx覆盖旧的
会多一个objs文件夹
执行覆盖命令(先停止nginx,./nginx -s stop
)
cp ./objs/nginx /usr/local/nginx/sbin/
3、https配置(SSL证书安装)
3.1 下载证书文件和密钥文件
我自己用的百度云的免费SSL证书下载证书这里格式选择PEM_Nginx
解压完之后有两个文件如下所示。
- 证书文件以.cer或crt为后缀或文件类型
- 密钥文件以.key为后缀或文件类型
3.2 服务器上创建cert文件夹
在nginx的安装目录创建cert文件夹并将下载的证书文件和密钥文件拷贝到cert目录中。
这里我创建到了nginx/conf下面了这是试了好几次报错后的结果。
3.3 配置nginx.conf
打开Nginx安装目录 > conf文件夹 > nginx.conf文件在nginx.conf文件中找到以下属性
将注释放开并修改内容如下
# 以下属性中以ssl开头的属性代表与证书配置有关其他属性请根据自己的需要进行配置。
server {
listen 443 ssl;
server_name codeleader.top; # localhost修改为您证书绑定的域名。
# ssl on; #设置为on启用SSL功能。
root html;
index index.html index.htm;
ssl_certificate cert/codeleader.top.crt; #将domain.pem替换成您证书的文件名。
ssl_certificate_key cert/codeleader.top.key; #将domain.key替换成您证书的密钥文件名。
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;
location / {
proxy_pass http://halo;
proxy_set_header HOST $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
这里我并没有隐藏我的域名希望懂行的大佬不要恶意攻击我也只是用服务器部署小项目测试并不是生产服务器攻击对您也没啥收益。
3.4 设置http请求自动跳转https
在需要跳转的http站点下添加以下rewrite语句实现http访问自动跳转到https页面
#设置http请求自动跳转https
rewrite ^(.*)$ https://$host$1 permanent;
3.5 重启测试
./nginx -s reload
证书安装完成后可通过登录证书绑定域名的方式验证证书是否安装成功。
https://domain:port #domain替换成证书绑定的域名,默认443端口可以忽略不输入
如果网页地址栏出现绿色小锁标志表示证书安装成功。