nginx安装SSL证书的正确方法

发布时间 - 2020-11-18 00:00:00    点击率:

前提条件:

已经生成了以下文件:

domain.com.crt   (域名证书) 有的证书可能是cer 或 pem 或其他后缀名,都可以

domain.com.key   (私钥文件)

(相关教程:nginx教程)

配置Nginx

找到站点的配置文件,在server中添加443端口监听和证书文件引用

server {
    listen 80;
    #监听443端口(必须)
    listen 443 ssl;
    
    server_name domain.com www.domain.com;
    index index.html index.php index.htm;
    root /www/wwwroot/domain.com;

    #引用证书(必须,放在conf/ssl目录下可以用相对路径,其他位置用绝对路径)
    ssl_certificate     ssl/domain.com.crt;
    ssl_certificate_key ssl/domain.com.key;

    #协议优化(可选,优化https协议,增加安全性)
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;

    #其他的配置信息···
}

以上为最基本的配置,其他参数请根据生产环境需要添加

安装后重启nginx使其生效

如果重启nginx

失败使用如下命令检测nginx是否支持SSL

nginx -V

如果有显示 –with-http_ssl_module 表示已编译openssl,支持安装ssl,仔细检查配置文件
如果没有安装请下载nginx源码重新编译

./configure --with-http_stub_status_module --with-http_ssl_module
make && make install

强制跳转HTTPS

在配置文件中添加跳转代码

server {
    #站点和SSL的配置信息···

    #自动跳转到HTTPS(可选,和下面的部分域名跳转不能同时使用)
    if ($server_port = 80){
        rewrite ^(/.*)$ https://$host$1 permanent;
    }

    #绑定域名较多,只让部分域名跳转(根据情况选用,和上面的全部跳转不能同时使用)
    set $redirect_https 1;
    if ($server_port = 80) {
        set $redirect_https "${redirect_https}2";
    }
    if ($http_host = 'abc.com') {
        set $redirect_https "${redirect_https}3";
    }
    if ($http_host = 'cde.com') {
        set $redirect_https "${redirect_https}3";
    }
    if ($redirect_https = "123") {
        #当前域名跳转
        rewrite ^(.*)$ https://$host$1 permanent;
        #可以跳转到指定的域名
        #rewrite ^(.*)$ https://www.abcde.com$1 permanent;
    }
}


# nginx  # ssl  # https  # 跳转  # 配置文件  # 可选  # 重启  # 跳转到  # 放在  # 可以用  # 其他的  # 如果没有  # 较多 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 详解Oracle修改字段类型方法总结  昵图网官网入口 昵图网素材平台官方入口  如何在万网利用已有域名快速建站?  UC浏览器如何切换小说阅读源_UC浏览器阅读源切换【方法】  如何在阿里云购买域名并搭建网站?  Laravel如何使用Livewire构建动态组件?(入门代码)  如何在云虚拟主机上快速搭建个人网站?  jQuery 常见小例汇总  如何快速搭建高效WAP手机网站?  googleplay官方入口在哪里_Google Play官方商店快速入口指南  Laravel怎么实现模型属性转换Casting_Laravel自动将JSON字段转为数组【技巧】  百度输入法ai面板怎么关 百度输入法ai面板隐藏技巧  通义万相免费版怎么用_通义万相免费版使用方法详细指南【教程】  EditPlus中的正则表达式 实战(1)  学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?  Laravel Seeder填充数据教程_Laravel模型工厂Factory使用  Win11怎么修改DNS服务器 Win11设置DNS加速网络【指南】  HTML5打空格有哪些误区_新手常犯的空格使用错误【技巧】  利用python获取某年中每个月的第一天和最后一天  Laravel如何使用Blade组件和插槽?(Component代码示例)  Laravel如何实现本地化和多语言支持?(i18n教程)  ,在苏州找工作,上哪个网站比较好?  Edge浏览器怎么启用睡眠标签页_节省电脑内存占用优化技巧  如何在Windows虚拟主机上快速搭建网站?  Linux系统命令中screen命令详解  如何在阿里云虚拟服务器快速搭建网站?  Laravel怎么配置自定义表前缀_Laravel数据库迁移与Eloquent表名映射【步骤】  iOS验证手机号的正则表达式  网站建设整体流程解析,建站其实很容易!  Laravel怎么实现验证码功能_Laravel集成验证码库防止机器人注册  Python文本处理实践_日志清洗解析【指导】  Laravel Eloquent访问器与修改器是什么_Laravel Accessors & Mutators数据处理技巧  宙斯浏览器视频悬浮窗怎么开启 边看视频边操作其他应用教程  大学网站设计制作软件有哪些,如何将网站制作成自己app?  电视网站制作tvbox接口,云海电视怎样自定义添加电视源?  如何在万网自助建站平台快速创建网站?  Laravel如何与Docker(Sail)协同开发?(环境搭建教程)  如何在 Python 中将列表项按字母顺序编号(a.、b.、c. …)  Laravel Admin后台管理框架推荐_Laravel快速开发后台工具  新三国志曹操传主线渭水交兵攻略  ,交易猫的商品怎么发布到网站上去?  如何快速启动建站代理加盟业务?  如何在阿里云完成域名注册与建站?  Laravel如何使用Sanctum进行API认证?(SPA实战)  Laravel如何获取当前登录用户信息_Laravel Auth门面使用与Session用户读取【技巧】  高端网站建设与定制开发一站式解决方案 中企动力  如何构建满足综合性能需求的优质建站方案?  ,南京靠谱的征婚网站?  微信h5制作网站有哪些,免费微信H5页面制作工具?  如何在VPS电脑上快速搭建网站?