本文使用腾讯云申请的免费证书
配置443端口
将域名 domain.com
的证书文件 1_www.domain.com_bundle.crt
、私钥文件 2_www.domain.com.key
保存到同一个目录,例如/usr/local/nginx/conf/cert
目录下。
更新Nginx根目录下 conf/nginx.conf
文件如下:
server {
listen 443;
server_name domain.com; #填写绑定证书的域名
ssl on;
ssl_certificate cert/1_www.domain.com_bundle.crt;
ssl_certificate_key cert/2_www.domain.com.key;
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 / {
root html; #站点目录
index index.html index.htm;
}
}
证书路径可以用相对路径、绝对路径,路径字符串也可以用单引号来标识 ssl_certificate '/usr/cert/1_www.domain.com_bundle.crt';
配置完成后,先用 ./sbin/nginx –t
来测试下配置是否有误,正确无误的话,重启 Nginx。就可以使 https://domain.com
来访问了。
然而事实总是残酷的
[root@VM_0_9_centos sbin]# ./nginx -t
nginx: [emerg] unknown directive "ssl" in /usr/local/nginx/conf/nginx.conf:65
nginx: configuration file /usr/local/nginx/conf/nginx.conf test failed
出现这个错误说明没有将 ssl 模块编译进 Nginx,在 configure 的时候加上 –with-http_ssl_module
即可
#切换到当前Nginx版本安装包的解压目录
cd /usr/nginx/nginx-1.13.5/
./usr/nginx/nginx-1.13.5/configure --with-http_ssl_module
#切记千万不要make install那样就覆盖安装了
make
#先关闭当前Nginx
#nginx -s stop会检查nginx.conf文件,需要还原修改,或者直接kill进程
#用ps检查一下 ps -ef | grep nginx
./usr/local/nginx/sbin/nginx -s stop
#先备份
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
#make之后会在当前目录生成objs目录
cp objs/nginx /usr/local/nginx/sbin/nginx
#重启Nginx
./usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
现在 https://domain.com
终于可以访问了
注意:腾讯云需要在服务器安全组中打开443端口
Nginx 配置 http 跳转 https
下一步就是 http 到 https 的跳转
server {
listen 80;
server_name domain.com;
return 301 https://domain.com$request_uri;
}
下面推荐一个配置 http 全部301跳转到 https,并且 www.domain.com
全部301跳转到 domain.com
,加上禁止IP访问
server {
listen 80 default;
server_name _;
return 404;
}
server {
listen 80;
server_name www.domain.com;
return 301 https://domain.com$request_uri;
}
server {
listen 80;
server_name domain.com;
return 301 https://domain.com$request_uri;
}
server {
listen 443 default;
server_name _;
ssl on;
ssl_certificate cert/1_domain.com_bundle.crt;
ssl_certificate_key cert/2_domain.com.key;
return 404;
}
server {
listen 443;
server_name www.domain.com;
ssl on;
ssl_certificate cert/1_domain.com_bundle.crt;
ssl_certificate_key cert/2_domain.com.key;
return 301 https://domain.com$request_uri;
}
server {
listen 443;
server_name domain.com; #填写绑定证书的域名
ssl on;
ssl_certificate cert/1_www.domain.com_bundle.crt;
ssl_certificate_key cert/2_www.domain.com.key;
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 / {
root html; #站点目录
index index.html index.htm;
}
}
发表评论
沙发空缺中,还不快抢~