Nginx:SSL的安装和配置

证书申请:
    比如:阿里云提供期限为1年的免费证书。

SSL模块安装

查看是否已经安装了http_ssl_module模块

# 如未出现configure arguments: –with-http_ssl_module,则没安装SSL模块。
$ /usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.18.0
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC)
configure arguments: --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_realip_module --with-threads

下载并安装SSL

# 1.如已有安装包,则不需下载
$ cd /usr/local/src
$ wget http://nginx.org/download/nginx-1.18.0.tar.gz
# 2.解压安装包
$ tar -zxvf nginx-1.18.0.tar.gz
# 3. 配置SSL模块
$ cd nginx-1.18.0
$ ./configure --prefix=/usr/local/nginx --with-http_ssl_module
# 4. 使用make命令编译nginx。编译完成后,在当前目录会生成objs文件夹,里面会有一个nginx文件。
# 注:在已经安装过ngnix的环境,不要用make install,此命令会将nginx重装。
# 5. 用objs文件夹下面新的nginx文件,替换调当前的nginx文件。(替换前建议先备份)
$ cp ./objs/nginx /usr/local/nginx/sbin/
# 6. 再次查看SSL模块是否安装成功
# 有--with-http_ssl_module说明SSL模块安装成功。
$ /usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.18.0
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC)
built with OpenSSL 1.0.2u  20 Dec 2019 (running with OpenSSL 1.0.2k-fips  26 Jan 2017)
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --with-http_ssl_module

证书的部署和配置

上传证书到nginx服务器

# 1. 在nginx目录新建cert目录用于存放证书文件
$ cd /usr/local/nginx
$ mkdir cert
# 2. 上传证书到cert目录
$ scp /本地目录路径/证书名称.pem 目标服务器用户名@目标服务器IP地址:/usr/local/nginx/cert/
$ scp /本地目录路径/证书名称.key 目标服务器用户名@目标服务器IP地址:/usr/local/nginx/cert/

配置nginx.conf

$ vi /usr/local/nginx/conf/nginx.conf
# 1.SSL server的配置信息如下:
server {
    # 服务器端口使用443(也可配置其它端口),开启ssl, 这里ssl就是上面安装的ssl模块
    listen 443 ssl;
    # 域名的名称,多个以空格分开
    server_name  xxx.xxx.com;

    # ssl证书地址
    ssl_certificate     /usr/local/nginx/cert/证书名称.pem;  # pem文件的路径
    ssl_certificate_key  /usr/local/nginx/cert/证书名称.key; # key文件的路径

    # ssl验证相关配置
    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;   #使用服务器端的首选算法

    location / {
        root   html;
        index  index.html index.htm;
    }
}
# 2.将http重定向到https
server {
    listen  80; # 也可指定其它端口
    server_name xxx.xxx.com;
    return 301 https://xxx.xxx.com;
}
# 3.校验配置文件是否有语法错误
$ /usr/local/nginx/sbin/nginx -t
# 4.重新加载配置文件,使其生效
$ /usr/local/nginx/sbin/nginx -s reload

内容出处:,

声明:本网站所收集的部分公开资料来源于互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。如果您发现网站上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时修改或删除。文章链接:http://www.yixao.com/procedure/13264.html

发表评论

登录后才能评论