CentOS7自签名SSL证书并给nginx配置https

简介: CentOS7自签名SSL证书并给nginx配置https

生成SSL证书

详细步骤如下

安装依赖包

需要安装 openssl 之后才能生成ssl证书

yum install -y openssl openssl-devel

生成私钥

这一步会让你输入一个 4~2048 位的密码,你需要暂时记住这个密码

openssl genrsa -des3 -out server.key 2048

输入两遍相同的密码:

.png)]

生成CSR(Certificate Signing Request 证书签名请求 )

输入以下命令:

openssl req -new -key server.key -out server.csr

同时填写一些信息:

信息说明:

[root@localhost src]# openssl req -new -key server.key -out server.csr
Enter pass phrase for server.key: 在这里输入您刚刚输入的密码
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:国家简称,中国是CN
State or Province Name (full name) []:省份拼音
Locality Name (eg, city) [Default City]:城市拼音
Organization Name (eg, company) [Default Company Ltd]:公司英文名
Organizational Unit Name (eg, section) []:部门英文名
Common Name (eg, your name or your server's hostname) []:域名
Email Address []:邮箱
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:密码,可不填
An optional company name []:公司名称,可不填

取消私钥当中的密码

openssl rsa -in server.key -out server.key

只需要输入一遍密码就好了:

生成自签名SSL证书

openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt

使用ssl给nginx配置https

详细步骤

安装nginx

可参考文档:https://blog.csdn.net/m0_51510236/article/details/115637918

请求http的80端口自动跳转到https的443端口

在 nginx.conf 配置中加上这样一个server配置,这会让所有的http访问到的80端口自动转向https的请求方式

server {
    listen       80;
    server_name  localhost;
    rewrite ^(.*)$ https://$host$1 permanent;
}

然后我们在http块中加上一行代码,表示引入 vhost 下面所有的 .conf 文件

include vhost/*.conf;

整体的 nginx.conf 文件的内容如下:

worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        # 这里是只要遇到请求http的80端口的请求,全部从定向到https
        listen       80;
        server_name  localhost;
        rewrite ^(.*)$ https://$host$1 permanent;
    }
    include vhost/*.conf;
}

添加https的vhost配置文件

在 nginx 的 conf 文件夹下创建两个文件夹,分别为 vhost 和 ssl

  • vhost: 虚拟主机的配置路径,上面的引入的配置文件也是来自这个文件夹下
  • ssl: 用于存储我们之前使用到的证书

创建文件夹的命令(nginx的安装目录当中):

mkdir conf/{vhost,ssl}

然后将之前生成的 server.crt 和 server.key 复制到 ssl 文件夹当中:

再在 vhost 文件夹当中创建 域名.conf 的nginx配置文件,我演示时候使用的域名是 greateme.com 所以我的文件名是 greateme.com.conf:

server {
    listen       443 ssl;
    server_name  greateme.com;
    ssl_certificate /opt/server/nginx/conf/ssl/server.crt;
    ssl_certificate_key /opt/server/nginx/conf/ssl/server.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;
    location / {
        root   html;
        index  index.html index.htm;
    }
}

大致的目录结构是:

nginx
  |- sbin
  |   └─ nginx
  └─ conf
      |─ nginx.conf
      |─ vhost
      |   └─ greateme.com.conf
      └─ ssl
          |- server.crt
          └─ server.key

需要注意的地方:

开启访问

因为是自签名,所以会抛出不安全,如果需要安全则需要去证书服务商那购买证书:

点击确定不安全,然后就是通过https访问的nginx了:

注意如果是 MacOS 则需要输入 thisisunsafet (浏览器界面直接输入)来确定这个界面不安全之后才能访问

相关文章
|
7月前
|
人工智能 Ubuntu 前端开发
Dify部署全栈指南:AI从Ubuntu配置到HTTPS自动化的10倍秘籍
本文档介绍如何部署Dify后端服务及前端界面,涵盖系统环境要求、依赖安装、代码拉取、环境变量配置、服务启动、数据库管理及常见问题解决方案,适用于开发与生产环境部署。
1474 1
|
7月前
|
编解码 应用服务中间件 Linux
centos配置nginx-rtmp实现ffmpeg转码rtsp为rtmp视频流
centos配置nginx-rtmp实现ffmpeg转码rtsp为rtmp视频流
604 1
|
6月前
|
网络安全 开发工具 git
在GitLab CI中同步HTTPS仓库地址的yaml配置
最后,提交并推送 `.gitlab-ci.yml`文件到您的GitLab仓库。GitLab CI/CD将自动识别这个文件,并在每次推送到 `master`分支时执行定义的同步任务。
284 16
|
7月前
|
Ubuntu 安全 应用服务中间件
详细指南:配置Nginx服务器在Ubuntu平台上
以上步骤涵盖了基本流程:从软件包管理器获取 Ngnix, 设置系统服务, 调整UFW规则, 创建并激活服务器块(也称作虚拟主机), 并进行了初步优化与加固措施。这些操作都是建立在命令行界面上,并假设用户具有必要权限(通常是root用户)来执行这些命令。每个操作都有其特定原因:例如,设置开机启动确保了即使重启后也能自动运行 Ngnix;而编辑server block则定义了如何处理进入特定域名请求等等。
391 18
|
7月前
|
Ubuntu 安全 应用服务中间件
详细指南:配置Nginx服务器在Ubuntu平台上
以上步骤涵盖了基本流程:从软件包管理器获取 Ngnix, 设置系统服务, 调整UFW规则, 创建并激活服务器块(也称作虚拟主机), 并进行了初步优化与加固措施。这些操作都是建立在命令行界面上,并假设用户具有必要权限(通常是root用户)来执行这些命令。每个操作都有其特定原因:例如,设置开机启动确保了即使重启后也能自动运行 Ngnix;而编辑server block则定义了如何处理进入特定域名请求等等。
647 17
|
8月前
|
数据建模 应用服务中间件 PHP
配置nginx容器和php容器协同工作成功,使用ip加端口的方式进行通信
本示例演示如何通过Docker挂载同一宿主目录至Nginx与PHP容器,实现PHP项目运行环境配置。需注意PHP容器中监听地址修改为0.0.0.0:9000,并调整Nginx配置中fastcgi_pass指向正确的IP与端口。同时确保Nginx容器中/var/www/html权限正确,以避免访问问题。
配置nginx容器和php容器协同工作成功,使用ip加端口的方式进行通信
|
10月前
|
安全 数据建模 应用服务中间件
阿里云SSL证书价格、证书类型及免费版证书申请和证书部署教程参考
阿里云SSL证书有收费版也有免费版,收费版DV域名级SSL类型405元起,免费版证书为DV域名级SSL类型,每个实名个人和企业主体在一个自然年内可以一次性领取20张免费证书。本文为大家详细介绍阿里云SSL证书价格情况,包括不同域名类型、证书类型、证书等级和证书品牌的相关收费标准,以及免费版证书的申请和部署教程参考。
|
安全 算法 网络协议
解析:HTTPS通过SSL/TLS证书加密的原理与逻辑
HTTPS通过SSL/TLS证书加密,结合对称与非对称加密及数字证书验证实现安全通信。首先,服务器发送含公钥的数字证书,客户端验证其合法性后生成随机数并用公钥加密发送给服务器,双方据此生成相同的对称密钥。后续通信使用对称加密确保高效性和安全性。同时,数字证书验证服务器身份,防止中间人攻击;哈希算法和数字签名确保数据完整性,防止篡改。整个流程保障了身份认证、数据加密和完整性保护。
|
6月前
|
网络协议 应用服务中间件 网络安全
阿里云SSL证书申请具体操作流程,以申请免费SSL证书为例
阿里云免费SSL证书由Digicert提供,单域名可申请20张,有效期3个月。通过数字证书管理控制台,完成购买、域名验证(DNS或文件)、提交审核后下载,支持Nginx、Apache等多服务器格式。
731 0
|
算法 应用服务中间件 网络安全
阿里云WoSign“国密RSA双SSL证书”应用实践
阿里云WoSign品牌SSL证书是阿里云平台热销的国产品牌证书之一,支持签发国密合规的SM2算法SSL证书以及全球信任的RSA算法SSL证书,能够满足平台用户不同的SSL证书应用需求,同时为用户提供国密模块支持,实现“国密/RSA双证书部署”。
1480 6
阿里云WoSign“国密RSA双SSL证书”应用实践

热门文章

最新文章