Centos7 Nginx的SSL证书安装

注意路径

可见,nginx缺少SSL模块支持。这是因为我当年建站的时候根本没用到SSL啊,所以以前编译nginx的时候使用了不带SSL支持的默认编译参数。 为了让nginx添加SSL模块,只能重新编译它。但是,如何在现有nginx的基础上,添加一个支持SSL的编译参数呢?首先要找回原来编译nginx时的编译参数,然后再加上支持SSL的编译参数。如果不这样做,那么编译出来的nginx可能就会有问题(某些旧的编译参数被去掉了,使得nginx不能支持某些功能)。 所以先查看旧的nginx的编译参数:nginx -V 大写V 输出的信息中,最重要的一句是: configure arguments: --prefix=/usr/local/nginx 可见,当时我编译nginx的时候,只是指定了一个安装路径,没有其他特殊的编译参数。那么现在事情就好办了:回到nginx的源码目录下,加上SSL支持参数重新编译:

./configure --prefix=/usr/local/nginx --with-http_ssl_module
make

注意,此时千万不能手快直接 make install!因为我原来的nginx还有一堆的配置文件,不能被覆盖。我们应该只覆盖编译出来的nginx可执行程序:

cp /usr/local/nginx/sbin/nginx ~/
cp objs/nginx /usr/local/nginx/sbin/

其中,objs/nginx 是新编译出来的nginx可执行程序。 覆盖之后,再尝试重新启动nginx,就没有问题了。

接下来安装证书 WX20190724-133740@2x 一个证书 针对一个域名 WX20190724-133807@2x 进入nginx 目录下创建一个 mkdir cert 将两个文件上传到这个目录下 建议将文件重命名为 zhzq.pem 和 zhzq.key

编辑 vim nginx.conf

server {
    listen 80;
    listen 443 ssl;
    server_name ; 你的域名
    ssl off;
    ssl_certificate ../cert/zhzq.pem;
    ssl_certificate_key ../cert/zhzq.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;
  
}

重新载入

../sbin/nginx -s reload
# 如果上面的命令不起作用,也可以重启
../sbin/nginx -s stop
../sbin/nginx

https 443 开放对应的端口 访问就可以了

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×