基于Nginx部署ssl证书

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/myNameIssls/article/details/83656231

基于Nginx部署ssl证书

需求说明

通常情况下我们的系统是通过HTTP协议来通信的,但是在浏览器里访问时,会被认为是不安全的链接。提示如下图:
在这里插入图片描述

那为了解决这种问题,需要使用https协议来通信,https需要申请一张ssl证书。

实施方案

申请ssl证书

  • 证书可以通过阿里云、百度云、腾迅云平台免费申请,也可以根据自己网站情况申请收费的
  • 同时,也可以使用certbot自己去生成证书

本文中的证书是通过阿里云免费申请的,证书申请成功,会有不同服务器版本的,例如nginx、iis、apache等,这里选用的是nginx版本的。

申请的证书需要上传到服务器,假设:

  • 证书地址: /home/ssl/cert-1541059989454_isantian.com.crt
  • 密钥地址:/home/ssl/cert-1541059989454_isantian.com.key;

nginx配置


server{
                listen 80;
                server_name  www.abcd.com;
                # 将80端口请求重定向到https协议请求中
                rewrite ^(.*)$ https://${server_name}$1 permanent;
        }

server {
		listen       443;
        server_name  www.abcd.com;
		 # 配置SSL证书
        ssl on;
        ssl_certificate  /home/ssl/cert-1541059989454_isantian.com.crt;
        ssl_certificate_key /home/ssl/cert-1541059989454_isantian.com.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;
}

通过以上配置,便可实现nginx配置ssl证书。通过~./nginx -s reload~重启nginx服务器即可实现

可能遇到问题:

nginx:[emerg]unknown directive ssl

通过上述配置,在重启nginx的时候可能会遇到~nginx:[emerg]unknown directive ssl~这样的问题。
这是由于nginx在安装时没有安装ssl模块。

解决方案

  • nginx解压缩目录中,重新编译ssl模块:
    命令: ./configure –with-http_stub_status_module –with-http_ssl_module
  • 执行 make 命令
    ./configure和make命令执行完以后,会更新nginx文件
  • 备份原nginx文件
    cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
  • 替换nginx文件
    cp objs/nginx /usr/local/nginx/sbin/nginx
    objs/nginx:这个目录是nginx解压缩目录下

到此,基于nginx部署ssl证书结束

猜你喜欢

转载自blog.csdn.net/myNameIssls/article/details/83656231
今日推荐