域名增加https访问

环境配置:linux + docker + nginx1.9.8

第一步:

由于环境部署在docker里面,所以先进入docker
docker ps 展示出所有的docker镜像,docker exec -it 镜像名 bin/bash 进入镜像 (这里是重点,没有docker的忽略)
找到nginx的域名配置文件,我的目录是/etc/nginx/conf.d/xxx.conf

ssl_certificate /usr/local/src/ssl/xxxx.pem; #证书里面,必须是包含两套完整的-----BEGIN CERTIFICATE-----和-----END CERTIFICATE-----
ssl_certificate_key /usr/local/src/ssl/xxxx.key; #证书密钥文件
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ALL:!DH:!EXPORT:!RC4:+HIGH:+MEDIUM:!LOW:!aNULL:!eNULL;
以上两个xxx.pem 和 xxx.key 需要申请 (我的机器是在阿里云上的,可以直接在阿里云申请)

第二步:

重启nginx:nginx -s reload
这时候报错:unknown directive “ssl_certificate” 这是由于nginx的ssl模块未安装,这里我们需要重新编译下nginx

  1. 我们先来到当初下载nginx的包压缩的解压目录,如果你是看小编写的教程安装的,解压目录应该在“/usr/loacl/src/”,绝大多数应该都是在这个目录下的,已经是一种规范了。

  2. 来到解压目录下后,按顺序执行一下命令:

  3. 命令1 ./configure --with-http_ssl_module //重新添加这个ssl模块

  4. 注意如果没有出现错误,则直接看命令2即可

  5. 执行以上一条命令出现这个错误(./configure:错误:SSL模块需要OpenSSL库。),原因是因为缺少了OpenSSL,那我们再来安装一个即可执行:yum -y install openssl openssl-devel

  6. 等待OpenSSL的安装完成后,再执行./configure ,最后在执行” 命令1" 即可。

  7. 命令2 执行make命令,但是不要执行make install,因为make是用来编译的,而make install是安装,不然你整个nginx会重新覆盖的。

  8. 命令3 在我们执行完做命令后,我们可以查看到在nginx解压目录下,objs文件夹中多了一个nginx的文件,这个就是新版本的程序了。首先我们把之前的nginx先备份一下,然后把新的程序复制过去覆盖之前的即可。

            cp /usr/local/nginx/sbin/nginx       /usr/local/nginx/sbin/nginx.bak
    
            cp objs/nginx       /usr/local/nginx/sbin/nginx
    
  9. 命令4,最后我们来到Nginx安装目录下,来查看是否有安装ssl模块成功。执行./sbin/nginx -V即可看到如下图:

在这里插入图片描述
10. 记得 再次重启nginx

第三步:

这个时候发现https还是没有生效,原因是 上述修改是在docker里面的nginx,所以只支持docker里面访问,所以我们还需要在linux上(docker外面)修改,找到**/etc/nginx/conf.d/vhost/xxx.conf**

同样的还是要增加ssl相关配置,请看第一步

同时也要加上如下代码块,8081是docker里面nginx开放的端口

location / {
        proxy_pass http://127.0.0.1:8081;
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值