nginx配置阿里云免费ssl证书实现https化

前言

本篇文章主要介绍的是在阿里云免费申请SSL证书,使用nginx配置实现网站HTTPS化。

阿里云免费申请SSL证书实现网站HTTPS化

1、登录阿里云账户,在首页搜索框中模糊搜索SSL,选择SSL证书

2、点击购买证书选项

3、点击免费型DV_SSL,购买




4、支付完成后申请证书

5、填写证书申请信息

6、下载nginx形式的证书

nginx中进行配置

1、下载并安装nginx

2、nginx安装目录下新建cert文件夹,将下载的证书,一共两个文件放入该文件夹

3、进入nginx/conf文件夹中,vim nginx.conf,添加以下配置

 server {
        listen 443;
        server_name 域名;
		ssl on;
        root html;
        index index.html index.htm;
        ssl_certificate      ../cert/a.pem;
        ssl_certificate_key  ../cert/a.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;
			#服务器程序地址
            proxy_pass http://127.0.0.1:8080;
        }
		#配置静态资源地址
		location /data {
        	alias /data;
		}
		#禁止在浏览器中切换目录,autoindex on表示允许
		autoindex off;
        error_page  404              /404.html;
}
#80端口跳转到上面的443端口
server{
        listen 80;
        server_name 域名;
        rewrite ^/(.*)$ https://域名:443/$1 permanent;
}

4、进入nginx/sbin,./nginx –s reload ,重启nginx


5、报错nginx: [emerg] unknown directive "ssl" in /usr/local/nginx/conf/nginx.conf

原因:因为配置这个SSL证书需要引用到nginx的中SSL这模块,然而我们一开始编译的Nginx的时候并没有把SSL模块一起编译进去,所以导致这个错误的出现。

解决方案:
(1)./configure --with-http_ssl_module //重新添加这个ssl模块
(2)执行make命令,但是不要执行make install,因为make是用来编译的,而make install是安装,然整个nginx会重新覆盖的。
(3)在我们执行完做命令后,我们可以查看到在nginx解压目录下,objs文件夹中多了一个nginx的文件,这个就是新版本的程序了。首先我们把之前的nginx先备份一下,然后把新的程序复制过去覆盖之前的即可。(先停止nginx程序)
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
cp objs/nginx /usr/local/nginx/sbin/nginx
(4)最后我们来到Nginx安装目录下,来查看是否有安装ssl模块成功。执行./sbin/nginx -V即可看到

6.执行步骤4,重启nginx

CSDN:https://blog.csdn.net/qq_27682773
简书:https://www.jianshu.com/u/e99381e6886e
博客园:https://www.cnblogs.com/lixianguo/
掘金:https://juejin.im/user/5e71c8e0e51d4527235b7eb6

posted @ 2020-03-18 14:38  小小的bug  阅读(1747)  评论(0编辑  收藏  举报