1. 去阿里云或者腾讯云申请免费的ssl证书,这里以阿里云为例。成功以后获得两个文件以.key和.pem结尾的文件
2.进入nginx的目录新建目录cert里面放入刚刚申请的两个文件
3.配置nginx的配置文件,在conf/nginx.conf
说明:下面的配置是对443端口和80端口进行监听,443端口要启用ssl。监听443端口的server配置可以仿照上面ca认证页面的nginx配置示例 进行配置。
server {
listen 443;
server_name www.baidu.com baidu.com; // 你的域名
ssl on;
root /usr/local/website/dist; // 前台文件存放文件夹,可改成别的
index index.html index.htm;// 上面配置的文件夹里面的index.html
ssl_certificate cert/214292799730473.pem;// 改成你的证书的名字
ssl_certificate_key cert/214292799730473.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 / {
index index.html index.htm;
}
}
server {
listen 80;
server_name www.baidu.com baidu.com;// 你的域名
rewrite ^(.*)$ https://$host$1 permanent;// 把http的域名请求转成https
}
配置结束后进入sbin目录下 执行./nginx -t 如果出现下面
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
证明配置成功,然后执行./nginx -s reload
PS.执行./nginx -s reload可能出现nginx:[emerg]unknown directive ssl,
因为我们配置这个SSL证书需要引用到nginx的中SSL这模块,然而我们一开始编译的Nginx的时候并没有把SSL模块一起编译进去,所以导致这个错误的出现
A.找到nginx的包压缩的解压目录,一般在/usr/loacl/src/下,如果找不到可以全局搜索 find / -name configure,找到带nginx的目录就是了
B.执行./configure --with-http_ssl_module //重新添加这个ssl模块,如果出现错误执行yum -y install openssl openssl-devel,然后在执行上一步命令
C.执行make命令,但是不要执行make install,因为make是用来编译的,而make install是安装,不然你整个nginx会重新覆盖的
D.在我们执行完做命令后,我们可以查看到在nginx解压目录下,objs文件夹中多了一个nginx的文件,这个就是新版本的程序了。首先我们把之前 的nginx先备份一下,然后把新的程序复制过去覆盖之前的即可。
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
cp objs/nginx /usr/local/nginx/sbin/nginx
E.进入nginx的sbin下执行./nginx -s reload 如果不报错https就配置成功了。