nginx配置ssl证书,也就是常说的https,配置前准备,须有一个域名,下面来讲下配置免费的证书。
1 进入后台管理搜索ssl证书,这里我使用的是腾讯云,所以搜出来后出现以下界面
点击申请免费证书,一般情况下1-3个工作日审核通过,我运气好,几个小时就申请成功了。
2 申请证书成功后点击下载会得到几个证书文件,我们这里用nginx的来操作,把那两个文件放到服务器某个目录中
我这里把这两个证书文件放在服务器 /jssbg/ssl 目录中
3 进入服务器,找到nginx配置目录,并做配置,如下
如果不知道nginx在哪里,可以使用命令查看nginx安装在哪个目录
whereis nginx
找到配置文件 conf/nginx.conf 加入下面配置
server {
listen 443 ssl;
server_name 服务器域名;
ssl_certificate /jssbg/ssl/xxxx.crt; #这是.crt结尾的文件路径
ssl_certificate_key /jssbg/ssl/xxxxx.key; #这是.key结尾的文件路径
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配置
ssl_prefer_server_ciphers on;
location / {
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_pass http://www.baidu.com/;
}
}
加入以上配置后,重启nginx
注意:可能会报以下错误
nginx: [emerg] the "ssl" parameter requires ngx_http_ssl_module in /jssbg/nginx/conf/nginx.conf:38
解决方案:
找到你的nginx原始包目录 找到configure, 执行以下命令
./configure --prefix=/jssbg/nginx --with-http_ssl_module
make
上面--prefix是你的nginx安装的路径,也可以不填使用默认路径
4 把 objs 下的nginx文件复制到你刚才安装的路径的sbin目录下替换掉原有的nginx文件
cp objs/nginx /jssbg/nginx/sbin
杀掉所有nginx的进程,并重启nginx
访问https://域名, 访问成功,说明证书已经配置成功