侧边栏壁纸
博主头像
ZDREAM

对抗变化的方法唯有拥抱变化。

  • 累计撰写 35 篇文章
  • 累计创建 3 个标签
  • 累计收到 1 条评论

目 录CONTENT

文章目录

SSL证书部署

Thassarian
2022-09-29 / 0 评论 / 0 点赞 / 19 阅读 / 0 字

建议优先参考:

Nginx 安装 SSL 配置 HTTPS 超详细完整教程全过程-阿里云开发者社区 (aliyun.com)

 

如何转换证书格式? (aliyun.com)

 

在CentOS系统Tomcat 8.5或9上部署SSL证书 (aliyun.com)

 

个人笔记:

1.1. 准备SSL证书

进入当前Nginx运行目录,创建cert目录存放证书:

cd /usr/local/nginx/conf    #需确认为实际运行的nginx配置文件夹

mkdir cert

将证书及秘钥文件复制到该文件夹

可用pwd确认当前路径

举例: /usr/local/nginx/nginx-1.22.0/conf/cert

 

1.2. 开通443端口(或指定的其他https端口)

设置并保存防火墙配置:

iptables -I INPUT -p tcp --dport 443 -j ACCEPT

service iptables save

重启防火墙:

service iptables restart

检查端口开通情况:

netstat -tunlp

查看占用端口的程序和进程:

lsof -i :443

杀掉占用端口的进程(须先确认):

kill -9 进程id

1.3. 修改nginx配置

进入当前nginx运行目录下的conf文件夹

修改前先备份:

cp nginx.conf nginx-bak.conf

编辑nginx.conf配置文件

vim nginx.conf

打开配置文件后按i进入编辑模式:

 

将所有HTTP请求通过rewrite指令重定向到HTTPS:

server {

        listen 80;

        server_name yourdomain;      #需要将yourdomain替换成证书绑定的域名。

        rewrite ^(.*)$ https://$host$1;   #将所有HTTP请求通过rewrite指令重定向到HTTPS。

        location / {

            index index.html index.htm;

        }

}

设置https模块配置:

server {

        listen 443 ssl;

        #配置HTTPS的默认访问端口为443(或根据网络拓扑确认实际应使用的端口)。

        #如果未在此处配置HTTPS的默认访问端口,可能会造成Nginx无法启动。

        #如果您使用Nginx 1.15.0及以上版本,请使用listen 443 ssl代替listen 443和ssl on。

        server_name www.hitagi.cn;

        root html;

        index index.html index.htm;

        ssl_certificate cert/xxx.pem;      #替换证书文件名称

        ssl_certificate_key cert/xxx.key;   #替换秘钥文件名称

        ssl_session_timeout 5m;

        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;

        #表示使用的加密套件的类型。

        ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3; #表示使用的TLS协议的类型,您需要自行评估是否配置TLSv1.1协议。

        ssl_prefer_server_ciphers on;

        location / {

            root html;  #Web网站程序存放目录。

            proxy_pass http://127.0.0.1:8080;

            index index.html index.htm;

        }

}

编辑完成后按esc退出编辑模式。

保存并关闭文件:

:wq

检查当前运行的nginx版本是否包含ssl模块(在nginx的sbin目录下执行如已配置环境变量可忽略):

./nginx -V

如果返回结果中不包含 “--with-http_ssl_module”则需添加模块并重新编译nginx程序。

运行的nginx下sbin文件夹备份nginx程序:

cp nginx nginx-bak

在nginx安装包文件夹内使用修改后的配置:

./configure --with-http_ssl_module   #(需添加原有模块)

编译:

make

请勿使用编译并安装!

# make install

停止运行中的nginx服务:

./nginx -s stop

安装包文件夹中编译后生成的新nginx程序复制到到原运行中的目录替换:

cp 安装包目录/sbin/nginx 实际运行目录/sbin/nginx

进入运行目录的sbin,测试配置文件是否正确:

./nginx -t -c /usr/local/nginx/conf/nginx.conf

启动Nginx:

./nginx

查看是否启动成功

ps -ef | grep nginx

附:Nginx重载配置并启动命令:

./nginx -s reload

0

评论区