1. 查看nginx服务器是否添加http_ssl_module模块?
nginx -V
结果如下:
configure arguments: --user=www --group=www --prefix=/usr/local/nginx
--with-http_stub_status_module
--with-http_ssl_module
--with-http_v2_module
--with-http_gzip_static_module
--with-ipv6
--with-http_sub_module
--with-openssl=/tmp/lnmp1.4/src/openssl-1.0.2l
服务器已经安装ssl模块,如果没有安装,则需要重新编译安装。
2. 申请证书
登录腾讯云服务器,“云产品”,选择“SSL证书管理”。
单击“申请证书”
选择免费证书
按要求填写即可
选择“DNS自动验证”
确认申请后,需要腾讯审核。
审核成功后,选择下载
解压下载的文件后,会有以下目录,
在目录中找到Nginx目录,里面有两个两个证书文件,上传到到服务器中,我一般在nginx的conf文件夹中新建一个名为ssl的目录,在ssl目录中新建以网站域名为名的目录,里面放着本网站的证书。
如域名为:www.baidu.com的网站,ssl证书放在:
/usr/local/nginx/conf/ssl/wwww.baidu.com/
3. 配置SSL
修改nginx的配置文件,一般在nginx/conf/vhost/目录下有你的站点的配置文件,修改配置如下:
server{
listen 443; #https端口号
server_name www.baidu.com baidu.com;
index index.html index.htm index.php default.html default.htm default.php;
root /home/wwwroot/www.baidu.com/public/;
#ssl配置开始
ssl on;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_certificate /usr/local/nginx/conf/ssl/www.baidu.com/1_www.baidu.com_bundle.crt;
ssl_certificate_key /usr/local/nginx/conf/ssl/www.baidu.com/2_www.baidu.com.key;
#ssl配置结束
include other.conf;
#error_page 404 /404.html;
# Deny access to PHP files in specific directory
#location ~ /(wp-content|uploads|wp-includes|images)/.*\.php$ { deny all; }
include enable-php.conf;
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*\.(js|css)?$
{
expires 12h;
}
location / {
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=$1 last;
break;
}
}
location ~ /.well-known {
allow all;
}
location ~ /\.
{
deny all;
}
access_log /home/wwwlogs/www.baidu.com.log;
}
这样即可使用https://www.baidu.com 就可以访问了,如果使用http://www.baidu.com访问是不行的,需要在配置文件中跳转到https中,在些配置文件的开头增加:
server {
listen 80;
server_name www.baidu.com baidu.com;
return 301 https://$server_name$request_uri;
}
配置完成后,先用
bin/nginx –t
来测试下配置是否有误,正确无误的话,重启nginx。