`
阅读更多

为响应“https时代”的到来,我公司决定将http升级成https,网上资料一大把,但是没有一个比较全面的。

 

https介绍

参考博客地址:

https://www.williamyao.com/index.php/archives/1397/

http://www.cnblogs.com/piscesLoveCc/p/6120875.html

http://www.open-open.com/lib/view/open1451624143370.html

 

1、因nginx默认不支持https,故需要重新编译nginx,加上--with-http_ssl_module

1.1、下载openssl

 

wget http://www.openssl.org/source/openssl-1.0.0d.tar.gz
tar zxvf openssl-1.0.0d.tar.gz

 1.2、nginx -V 查看目前nginx编译选项,然后在新版本nginx下 执行,注意添加--with-openssl=../openssl-1.0.0d 和 --with-http_ssl_module 选项

 

./configure --user=www --group=www --prefix=/mt/server/nginx --with-http_stub_status_module --with-openssl=../openssl-1.0.0d --without-http-cache --with-http_ssl_module --with-http_gzip_static_module --with-...

 1.3、编译,千万不要makeinstall

  

make

 1.4、之后会看在当前目录生成objs文件,执行

  

./objs/nginx -V

    得到如下信息

  

nginx version: nginx/1.8.0
built by gcc 4.1.2 20080704 (Red Hat 4.1.2-55)
built with OpenSSL 1.0.0d 8 Feb 2011  //表明已支持ssl
TLS SNI support enabled    //表明已支持多域名访问

 1.5、备份原来的nginx,替换新的nginx

  

mv /mt/server/nginx/sbin/nginx /mt/server/nginx/sbin/nginx.old
cp ./objs/nginx /mt/server/nginx/sbin/nginx

 1.6、测试

/mt/server/nginx/sbin/nginx -t

 1.7、测试成功之后,更新

  

make upgrade

 1.8、此时再次nginx -V查看,应该与1.4得到的信息一致。nginx增加https支持成功

 

2、申请https证书,参考:https://www.williamyao.com/index.php/archives/1397/

目前只有https://www.startssl.com唯一一个提供免费证书的CA机构,所以,如果对证书要求不高,且不想花钱的童鞋,就在这儿申请吧。具体步骤:

2.1、首先访问 StartSSL.com 点击 Sign-up 进行注册

选择国家,填写邮箱,获取验证码注册。

2.2、验证域名


 选择上面的Validations Wizard,启动验证向导,在下面选择Domain Validation对域名进行验证,点击继续,来到下一步


 输入想要验证的域名,可以是顶级域名或二级域名,下一步

 
 这里还会遇到个问题,如果你的域名服务商为你开启了隐私保护,那么这里的域名所有者邮件地址一般情况不会查询到真正可操作的邮箱,比如阿里云的域名隐私保护如果开启了,列表中第一个邮箱会是以阿里云结尾的一个伪装邮箱,经测试,这个邮箱是无法收到任何邮件的(本以为会代为转发),所以在进行这一步之前,一定要暂时关闭隐私保护。

2.3、获取证书

重新回到控制面板,选择上面的Certificates Wizard启动证书申请向导,SSL/TLS Certificate


2.4、增加你的域名,下面单选款选第一个,自己生成。


2.5、点击StartComTool.exe下载csr生成器,双击运行

 如果文本框里已经有内容了,就点一下Clear

直接点击下方绿色的Generate CSR按钮,在弹出的对话框中选择路径,保存相关文件(比如给文件起名叫 app.williamyao.com.key),这一步工具会自动为我们生成两个名称相同的文件,一个是 CSR,一个是 Key,这两个文件都要保存好,一个是签名内容(csr格式),一个是密钥文件,密钥文件在下一步配置 Nginx 时会用到。

然后,将文本框中的 CSR 内容复制粘贴到浏览器的文本框中(直接点“Copy”按钮,回到浏览器粘贴即可)

2.6、下载证书,如果正常,证书已生成完毕。


 下载证书。得到一个zip,里面有ApacheServer.zip、IISServer.zip、NginxServer.zip、OtherServer.zip这几个zip文件,按照自己的服务器不同,使用不通zip包。

我们用的nginx,故使用NginxServer.zip,里面有一个crt文件。将此crt文件和之前StartComTool.exe生成crt时同时生成的那个key文件上传到nginx所在的服务器。

3、配置nginx.conf

 

server
{
    listen 443 ssl;
    server_name www.williamyao.com;
    # SSL 支持配置如下
    ssl_certificate /etc/ssl/private/www.yourdomain.com.crt;#之前上传的crt文件
    ssl_certificate_key /etc/ssl/private/www.domain.com.key;#之前上传的key文件
    ...(其他配置)...
}
server
{
    listen 80;
    server_name www.yourdomain.com;
    return 301 https://www.yourdomain.com$request_uri;
}
 3.1、优化ssl配置,在监听443端口的server里面添加下面配置。参考:http://www.cnblogs.com/piscesLoveCc/p/6120875.html
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES256-SHA384:AES256-SHA256:RC4:HIGH:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!AESGCM;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
 3.2、如要是用proxy_pass,跳转http服务集群,可安装原来http的配置方式不需要修改
upstream parkingphone {
   ip_hash;
   server 10.255.8.50:1061;
   server 10.255.8.51:1061;
   server 10.255.8.52:1061;
}


server {
        listen 443 ssl;
        //server_name、ssl、access_log等等配置,已略 
        location /parkingphone/ {
            index index.jsp index.html index.htm *.css;
            proxy_pass http://parkingphone;
        }        
}  
 4、配置后遇到的问题解决
4.1、网站无法访问的问题,我的原因是服务器端口没有打开
a、打开服务器iptables端口443
b、打开网络路由端口443外网可访问。
4.2、有些页面里面引入了别的网站的连接,比如我的网站中引入了高得地图,之前使用http引入的。但是,现在升级成https后,地图加载不出来了,我测试了下使用https访问地图也可以访问到。
所有我把原来项目中引入的连接全改成https了,问题解决。
原来引入方式:
<script type="text/javascript" src="http://cache.amap.com/lbs/static/es5.min.js"></script>
 现在引入方式:
<script type="text/javascript" src="https://cache.amap.com/lbs/static/es5.min.js"></script>
 over!!!
 

 

 

  • 大小: 147.2 KB
  • 大小: 44.2 KB
  • 大小: 21.8 KB
  • 大小: 29.7 KB
  • 大小: 125.1 KB
  • 大小: 130.8 KB
  • 大小: 75.5 KB
  • 大小: 35.4 KB
分享到:
评论

相关推荐

    添加nginx-http-flv-module模块并重新编译后的nginx(windows版)

    本资源提供的是一款针对Windows平台的Nginx,其中已经集成了`nginx-http-flv-module`模块,这个模块主要用于支持HTTP实时流(HTTP Live Streaming, HLS)和Flash视频流(Flash Video, FLV)。现在我们将深入探讨这一...

    CentOS 7 nginx平滑升级.pdf

    例如,`--with-http_ssl_module`用于启用HTTPS支持,`--with-http_realip_module`用于处理客户端真实IP等。如果在旧版本中启用了额外的模块,也需要在这里添加相应的参数。 完成配置后,使用`make`命令编译源码。...

    windows下nginx配置https以及同一个端口监听多个网站即监听多个虚拟主机

    在Windows环境下,配置Nginx以支持HTTPS及在同一端口监听多个网站,即配置多个虚拟主机,是一项常见的网络服务设置任务。Nginx是一个高性能的HTTP和反向代理服务器,以其稳定性、高并发处理能力而受到广泛使用。下面...

    nginx1.8平滑升级

    nginx作为一款在Web服务器领域有着广泛应用的软件,及时更新至最新版本,对于确保网站的安全性、提升处理能力、增加新特性等功能上有着不可忽视的作用。 总之,平滑升级是nginx提供的一项便捷功能,它允许管理员在...

    为Nginx添加mp4流媒体支持

    为Nginx添加mp4流媒体支持,关键在于安装和配置Nginx的第三方模块,用以支持H.264编码格式的mp4流媒体。在现代的Web应用中,视频流的处理成为了网站功能不可或缺的一部分,而Nginx作为一种高性能的HTTP和反向代理...

    Nginx平滑升级的详细操作方法

    进行Nginx平滑升级之前,需要下载新的Nginx源码包并编译安装,但在此过程中需要注意的是,不应直接使用make install命令,因为这会导致旧版本的Nginx被新的二进制文件替换掉,无法实现平滑升级。正确的做法是编译...

    nginx 平滑重启与升级的实现方法

    在Nginx的配置文件nginx.conf中,我们可能会做出修改,比如优化性能、增加新的模块、更改代理设置等。在这些配置生效之前,需要重启Nginx服务。传统的方法是使用kill命令强制停止Nginx进程,然后再启动新的服务进程...

    阿里云服务器配置nginx+https

    对于启用HTTPS,首先确认Nginx是否已经配置了SSL模块。你可以通过运行Nginx并检查输出来判断: ```bash /usr/local/nginx/sbin/nginx -V ``` 如果未发现`--with-http_ssl_module`,则需要重新编译Nginx,添加SSL...

    Nginx配置多个HTTPS域名的方法

    首先,要使用Nginx支持多个HTTPS域名,需要确保Nginx编译时包含必要的模块。通常情况下,Nginx需要与OpenSSL库配合使用,并启用SSL模块(--with-http_ssl_module)。为了支持TLS的SNI扩展,还需要确保OpenSSL版本...

    实战Nginx.取代Apache的高性能Web服务器

    4.6 在不停止Nginx服务的情况下平滑变更Nginx配置 4.7 编写每天定时切割Nginx日志的脚本 第5章 Nginx与JSP、ASP.NET、Perl的安装与配置 5.1 Nginx与JSP(Tomcat)在Linux上的安装、配置 5.2 Nginx与ASP.NET...

    NGINX集成nginx-http-flv

    nginx-http-flv模块使Nginx能够解析并处理FLV流,从而在不增加服务器压力的情况下,高效地分发视频内容。 使用Nginx作为流媒体服务器的优势在于其可扩展性、稳定性和低内存占用。Nginx可以通过反向代理功能分发负载...

    nginx添加ssl模块的方法教程

    Nginx作为一款高性能的HTTP和反向代理服务器,支持SSL模块,可以帮助我们实现HTTPS加密传输,保护用户数据的安全。本教程将详细介绍如何在已安装的Nginx上添加SSL模块。 首先,确认你的Nginx是否已经安装了SSL模块...

    nginx对http method的控制修改方法

    为了支持PUT和DELETE等HTTP方法,需要在编译Nginx时启用Dav模块。具体做法是在`./configure`命令中加入`--with-http_dav_module`参数。此外,还需要在Nginx的配置文件`nginx.conf`中添加如下配置: ```nginx ...

    集成nginx-rtmp插件的nginx

    nginx-rtmp模块是Nginx的一个扩展,它添加了对RTMP协议的支持。这个插件允许Nginx接收RTMP推流,并将它们转换为其他格式,如HLS(HTTP Live Streaming),以便在多种设备上进行播放。此外,它还支持记录流媒体内容以...

    Nginx 极简教程.pdf

    开发者可以根据需求通过模块来扩展功能,例如增加对SSL的支持、开启压缩功能、调整图像大小等。这种设计使得Nginx可以适用于多种不同的环境和需求。 高可靠性是Nginx的另一大特点。Nginx采用主从架构,一个主进程...

    NGINX 0.1版代码

    尽管随着版本迭代,NGINX的功能和复杂性不断增加,但这些基础设计理念一直贯穿其中,是理解和开发基于NGINX的应用的关键。通过研究这个早期版本,开发者可以更好地领悟NGINX的精髓,为后续的学习和实践打下坚实基础...

    Nginx 核心模块与配置实践 (1)1

    `显示帮助,`./nginx`启动服务器,`./nginx -c /path/to/nginx.conf`指定配置文件启动,`nginx -s reload`或`kill -HUP &lt;nginx进程PID&gt;`用于平滑重载配置。 在配置实践中,Nginx的灵活性体现在其模块化设计。它可以...

    Nginx 应用技术指南

    当需要更新配置文件时,Nginx支持平滑地重新加载配置文件,无需中断现有的客户端连接。 #### 三、Nginx编译优化 **3.1 GCC参数** 编译Nginx时,可以通过指定GCC编译器的参数来优化编译过程,如开启更多的优化选项...

    Nginx高性能Web服务器详解

    Nginx可以通过第三方模块支持WebSocket协议,用于实时通信场景。 深入学习Nginx,不仅需要理解上述基础知识,还需要熟悉配置文件的编写,掌握常见的问题排查技巧,以及如何利用Nginx解决实际的业务需求。通过阅读...

Global site tag (gtag.js) - Google Analytics