如何在 CentOS 7 上为 Nginx 创建自签名 SSL 证书

2023-11-07

介绍

TLS,或传输层安全,及其前身SSL代表安全套接字层,是用于将正常流量包装在受保护的加密包装器中的 Web 协议。

使用此技术,服务器可以在服务器和客户端之间安全地发送流量,而不会出现消息被外部各方拦截的可能性。证书系统还帮助用户验证他们所连接的站点的身份。

在本指南中,您将设置一个自签名 SSL 证书,以便与 CentOS 7 服务器上的 Nginx Web 服务器一起使用。

Note:自签名证书将加密您的服务器和任何客户端之间的通信。但是,由于它没有由 Web 浏览器中包含的任何受信任的证书颁发机构签名,因此用户无法使用该证书自动验证服务器的身份。因此,用户在访问您的网站时会看到安全错误。

由于此限制,自签名证书不适合为公众服务的生产环境。它们通常用于测试或保护单个用户或一小群用户使用的非关键服务,这些用户可以通过备用通信渠道建立对证书有效性的信任。

如需更适合生产的证书解决方案,请查看让我们加密,一个免费的证书颁发机构。您可以在我们的网站中了解如何下载和配置 Let’s Encrypt 证书在 CentOS 7 上使用 Let’s Encrypt 证书设置 Nginx教程。

先决条件

要完成本教程,您应该具备以下条件:

  • 具有非 root 用户配置的 CentOS 服务器sudo中描述的特权CentOS 7 的初始服务器设置教程。
  • 服务器上安装Nginx,如下所述如何在 CentOS 7 上安装 Nginx.

当您准备好开始时,请以您的身份登录到您的服务器sudo user.

第 1 步 — 创建 SSL 证书

TLS/SSL 通过使用公共证书和私钥的组合来工作。 SSL 密钥在服务器上保密。它用于加密发送给客户端的内容。 SSL 证书与请求该内容的任何人公开共享。它可用于解密由关联的 SSL 密钥签名的内容。

The /etc/ssl/certs服务器上应该已经存在可用于保存公共证书的目录。您将需要创建一个/etc/ssl/private目录也是如此,用于保存私钥文件。由于此密钥的保密对于安全至关重要,因此锁定权限以防止未经授权的访问非常重要:

  1. sudo mkdir/etc/ssl/私有
  2. sudo chmod 700/etc/ssl/私有

现在,您可以通过键入以下命令在单个命令中使用 OpenSSL 创建自签名密钥和证书对:

  1. sudoopenssl 请求-x509 -nodes -days 365 -newkeyRSA:2048-keyout/etc/ssl/private/nginx-selfsigned.key-out/etc/ssl/certs/nginx-selfsigned.crt

您将被问到一系列问题。在讨论之前,让我们看一下命令中发生了什么:

  • openssl:这是用于创建和管理 OpenSSL 证书、密钥和其他文件的基本命令行工具。
  • req:此子命令指定您要使用 X.509 证书签名请求 (CSR) 管理。 “X.509”是 SSL 和 TLS 的密钥和证书管理所遵循的公钥基础设施标准。您想要创建新的 X.509 证书,因此您正在使用此子命令。
  • -x509:这通过告诉实用程序您想要创建自签名证书而不是像通常发生的那样生成证书签名请求来进一步修改前面的子命令。
  • -nodes:这告诉 OpenSSL 跳过使用密码保护证书的选项。当服务器启动时,您需要 Nginx 能够读取该文件,而无需用户干预。密码可以防止这种情况发生,因为每次重新启动后都必须输入密码。
  • -第365天:此选项设置证书被视为有效的时间长度。你在这里设置了一年。
  • -newkey rsa:2048:这指定您要同时生成新证书和新密钥。您没有在上一步中创建签署证书所需的密钥,因此您需要将其与证书一起创建。这rsa:2048部分告诉它创建一个 2048 位长的 RSA 密钥。
  • -keyout:此行告诉 OpenSSL 将您正在创建的生成的私钥文件放置在哪里。
  • -out:这告诉 OpenSSL 将您正在创建的证书放置在哪里。

如上所述,这些选项将创建密钥文件和证书。系统将询问您一些有关服务器的问题,以便将信息正确嵌入到证书中。

正确填写提示。最重要的一行是请求Common Name (e.g. server FQDN or YOUR name)。您需要输入与您的服务器关联的域名或服务器的公共 IP 地址。

整个提示将如下所示:

Output
Country Name (2 letter code) [XX]:US State or Province Name (full name) []:Example Locality Name (eg, city) [Default City]:Example Organization Name (eg, company) [Default Company Ltd]:Example Inc Organizational Unit Name (eg, section) []:Example Dept Common Name (eg, your name or your server's hostname) []:your_domain_or_ip Email Address []:webmaster@example.com

您创建的两个文件都将放置在相应的子目录中/etc/ssl目录。

当您使用 OpenSSL 时,您还应该创建一个强大的 Diffie-Hellman 组,用于协商完美的前向保密与客户。

您可以通过键入以下内容来执行此操作:

  1. sudoopenssl dhparam-out/etc/ssl/certs/dhparam.pem2048

这可能需要几分钟,但完成后您将拥有一个强大的 DH 小组/etc/ssl/certs/dhparam.pem您可以在您的配置中使用它。

第 2 步 — 配置 Nginx 以使用 SSL

CentOS 中的默认 Nginx 配置相当非结构化,默认 HTTP 服务器块位于主配置文件中。 Nginx 将检查以以下结尾的文件.conf in the /etc/nginx/conf.d用于附加配置的目录。

您将在此目录中创建一个新文件来配置使用您生成的证书文件提供内容的服务器块。然后,您可以选择配置默认服务器块以将 HTTP 请求重定向到 HTTPS。

创建 TLS/SSL 服务器块

创建并打开一个名为ssl.conf in the /etc/nginx/conf.d目录:

  1. sudo vi/etc/nginx/conf.d/ssl.conf

在里面,首先打开一个server堵塞。默认情况下,TLS/SSL 连接使用端口 443,因此这应该是您的listen港口。这server_name应设置为您在生成证书时用作通用名称的服务器的域名或 IP 地址。接下来,使用ssl_certificate, ssl_certificate_key, and ssl_dhparam指令设置您生成的 SSL 文件的位置:

/etc/nginx/conf.d/ssl.conf
server {
    listen 443 http2 ssl;
    listen [::]:443 http2 ssl;

    server_name your_server_ip;

    ssl_certificate /etc/ssl/certs/nginx-selfsigned.crt;
    ssl_certificate_key /etc/ssl/private/nginx-selfsigned.key;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;
}

接下来,您将添加一些额外的 SSL 选项,以提高站点的安全性。您将使用的选项是来自的建议密码列表.eu。该网站旨在为流行软件提供易于使用的加密设置。

Note:默认建议设置为密码列表.eu提供强大的安全保障。有时,这是以提高客户端兼容性为代价的。如果您需要支持较旧的客户端,可以通过单击标有“是的,给我一个适用于旧版/旧软件的密码套件”的链接来访问替代列表。

可以在两个注释块之间使用兼容性列表来代替上述配置中的默认建议。选择使用哪种配置很大程度上取决于您需要支持的内容。

您可能希望修改一些配置。首先,您可以将上游请求的首选 DNS 解析器添加到resolver指示。您在本指南中使用了 Google,但如果您有其他偏好,则可以更改此设置。

最后,您应该花点时间阅读HTTP 严格传输安全(HSTS),特别是关于“预加载”功能。预加载 HSTS 可提高安全性,但如果意外启用或错误启用,可能会产生深远的后果。在本指南中,您不会预加载设置,但如果您确定了解其含义,则可以对其进行修改。

/etc/nginx/conf.d/ssl.conf
server {
    listen 443 http2 ssl;
    listen [::]:443 http2 ssl;

    server_name your_server_ip;

    ssl_certificate /etc/ssl/certs/nginx-selfsigned.crt;
    ssl_certificate_key /etc/ssl/private/nginx-selfsigned.key;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;

    ########################################################################
    # from https://cipherlist.eu/                                            #
    ########################################################################
    
    ssl_protocols TLSv1.3;# Requires nginx >= 1.13.0 else use TLSv1.2
    ssl_prefer_server_ciphers on;
    ssl_ciphers EECDH+AESGCM:EDH+AESGCM;
    ssl_ecdh_curve secp384r1; # Requires nginx >= 1.1.0
    ssl_session_timeout  10m;
    ssl_session_cache shared:SSL:10m;
    ssl_session_tickets off; # Requires nginx >= 1.5.9
    ssl_stapling on; # Requires nginx >= 1.3.7
    ssl_stapling_verify on; # Requires nginx => 1.3.7
    resolver 8.8.8.8 8.8.4.4 valid=300s;
    resolver_timeout 5s;
    # Disable preloading HSTS for now.  You can use the commented out header line that includes
    # the "preload" directive if you understand the implications.
    #add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload";
    add_header X-Frame-Options DENY;
    add_header X-Content-Type-Options nosniff;
    add_header X-XSS-Protection "1; mode=block";
    ##################################
    # END https://cipherlist.eu/ BLOCK #
    ##################################
}

由于您使用的是自签名证书,因此不会使用 SSL 装订。 Nginx 将简单地输出警告,禁用自签名证书的装订,并继续正确运行。

最后,为您的站点添加其余的 Nginx 配置。这将根据您的需求而有所不同。您只需复制示例的默认位置块中使用的一些指令,这将设置文档根目录和一些错误页面:

/etc/nginx/conf.d/ssl.conf
server {
    listen 443 http2 ssl;
    listen [::]:443 http2 ssl;

    server_name your_server_ip;

    ssl_certificate /etc/ssl/certs/nginx-selfsigned.crt;
    ssl_certificate_key /etc/ssl/private/nginx-selfsigned.key;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;

    ########################################################################
    # from https://cipherlist.eu/                                            #
    ########################################################################
    
    . . .
    
    ##################################
    # END https://cipherlist.eu/ BLOCK #
    ##################################

    root /usr/share/nginx/html;

    location / {
    }

    error_page 404 /404.html;
    location = /404.html {
    }

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
    }
}

完成后,保存并退出。这会将 Nginx 配置为使用您生成的 SSL 证书来加密流量。指定的 SSL 选项可确保仅使用最安全的协议和密码。请注意,此示例配置仅提供默认的 Nginx 页面,因此您可能需要修改它以满足您的需求。

创建从 HTTP 到 HTTPS 的重定向(可选)

根据您当前的配置,Nginx 对端口 443 上的请求以加密内容进行响应,但对端口 80 上的请求以未加密内容进行响应。这意味着您的站点提供加密,但不强制使用它。这对于某些用例来说可能没问题,但通常最好要求加密。当密码等机密数据可能在浏览器和服务器之间传输时,这一点尤其重要。

值得庆幸的是,默认的 Nginx 配置文件允许我们轻松地将指令添加到默认端口 80 服务器块。您可以通过将其插入到开头来完成此操作ssl.conf:

/etc/nginx/conf.d/ssl.conf
server {
    listen 80;
    listen [::]:80;
    server_name your_server_ip;
    return 301 https://$host$request_uri;
}

. . .

完成后保存并关闭文件。这将配置端口 80(默认)服务器块上的 HTTP,以将传入请求重定向到您配置的 HTTPS 服务器块。

第 3 步 — 启用 Nginx 中的更改

现在您已经进行了更改,您可以重新启动 Nginx 来实施新配置。

首先,您应该检查以确保配置文件中没有语法错误。您可以通过键入以下内容来执行此操作:

  1. sudo nginx -t

如果一切成功,您将得到如下所示的结果:

Output
nginx: [warn] "ssl_stapling" ignored, issuer certificate not found nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful

请注意开头的警告。如前所述,此特定设置会引发警告,因为自签名证书无法使用 SSL 装订。这是预期的,您的服务器仍然可以正确加密连接。

如果您的输出与上述内容匹配,则您的配置文件没有语法错误。您可以安全地重新启动 Nginx 以实施您的更改:

  1. sudosystemctl 重新启动 nginx

Nginx 进程将重新启动,实施您配置的 SSL 设置。

第 4 步 — 测试加密

现在,您已准备好测试您的 SSL 服务器。

打开您的网络浏览器并输入https://然后在地址栏中输入您服务器的域名或 IP:

https://server_domain_or_IP

由于您创建的证书不是由浏览器受信任的证书颁发机构之一签署的,因此您可能会看到如下所示的可怕警告:

Nginx self-signed cert warning

这是预期的且正常的。您只对证书的加密方面感兴趣,而不对主机真实性的第三方验证感兴趣。单击“高级”,然后单击提供的链接继续访问您的主机:

Nginx self-signed override

您应该被带到您的网站。如果您查看浏览器地址栏,您会看到一些部分安全的指示。这可能是一个上面带有“x”的锁或带有感叹号的三角形。在这种情况下,这仅意味着无法验证证书。它仍在加密您的连接。

如果您配置了 Nginx 将 HTTP 请求重定向到 HTTPS,您还可以检查重定向功能是否正常:

http://server_domain_or_IP

如果这导致相同的图标,则意味着您的重定向工作正常。

结论

您已将 Nginx 服务器配置为对客户端连接使用强加密。这将使您能够安全地处理请求,并防止外部各方读取您的流量。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 CentOS 7 上为 Nginx 创建自签名 SSL 证书 的相关文章

  • 使用 Nginx 自定义错误网关页面

    是否可以在 Nginx 中提供自定义的 Bad Gateway 错误页面 类似于自定义 404 页面 为了显示您的自定义错误页面而不是一般的 错误网关 错误 必须满足三个部分 您必须创建一个名为 500 html 之类的 html 文件并将
  • 使用 NGINX auth_request 和 oauth2_proxy 设置标头

    我想使用授权请求 http nginx org en docs http ngx http auth request module html and oauth2 proxy https github com bitly oauth2 pr
  • 处理 PHP 中的会话劫持

    阅读了 Stackoverflow 上有关会话劫持的许多问题 我发现验证用户会话的唯一 解决方案 是检查用户代理 这是一个薄弱的保护层 我什至懒得去检查实施它 所以 我想知道你们实施了哪些解决方案 您是否使用 PHP 的本机会话或者是否有更
  • CAS(代码访问安全)的目的是什么?

    我参与过很多 Web 应用程序 但从未使用过 CAS 也许也从未觉得有必要使用它 什么时候需要使用CAS 人们真的在他们的应用程序中使用它吗 CAS 实际上只在桌面应用程序中有用 可以这么说 在桌面应用程序中 您想要限制通过网络 例如 运行
  • GitLab 发布临时 IP 禁令 - 403 禁止

    我的 GitLab 实例设置有时会对我们自己的 IP 地址实施 IP 禁令 导致办公室中的所有用户在任何网页或 git 请求上都会收到 403 Forbidden 该禁令的实施是由于身份验证重复出现错误 这完全是一个单独的问题 但我想防止我
  • 在本地安全存储用于 Web 服务的密码

    我有一个应用程序 通过发送用户名和密码来对第三方 Web 服务进行身份验证 目前 我每次启动应用程序时都会在 winform 上输入密码 但我需要它自动登录 我想比更安全地存储用户名 密码 Dim username as String us
  • nginx 502 错误网关

    当使用 Spawn fcgi 生成 php5 cgi 时 我收到 502 Bad Gateway with nginx 我使用它来跨越服务器启动上的实例 并在 rc local 中使用以下行 usr bin spawn fcgi a 127
  • python:PyPi公共模块:如何确定是否安全?

    我已经完成了我的 python 3 应用程序 它正在使用 PyPi 的多个公共模块 然而 在我将其部署到我公司的企业 将处理客户的凭据并访问第 3 方 API 之前 我需要尽职调查确保它们既安全又安全 我必须执行哪些步骤 验证 PyPi 模
  • 强制 nginx 立即关闭连接

    如何让nginx在请求完成后立即关闭tcp连接 我刚刚找到了解决方案 location ip keepalive timeout 0
  • Laravel 5 - URL 查询字符串的 NGINX 服务器配置问题

    Laravel 没有从 URL 查询字符串接收任何 GET 变量 GET 和 Input all 为空 Example example app ex login php country US country US 从未出现在我的 GET 变
  • 当 ssl 和 http2 打开时,Nginx 似乎忽略 server_name

    我有这个 nginx 配置 server listen 80 default server listen 80 default server server name www example com return 301 https www
  • 使用 nginx 在云上部署 django 和 React

    我有一个 digitalocean 服务器 并且已经使用 Gunicorn 和 nginx 部署了 Django 后端服务器 如何在同一台服务器上部署 React 应用程序 您可以构建 React 应用程序并使用 Nginx 提供其静态文件
  • 使用 aws elastic beanstalk 将非 www 重定向到 www

    我正在使用 Elastic Beanstalk 并按照说明使用 Express Web 服务器部署我的应用程序 如下所示 http docs aws amazon com elasticbeanstalk latest dg create
  • 通过 ESI:include 设置 Cookie,如何?

    我正在尝试使用 esi 在我的网站上创建忍者缓存 这个想法是 该网站大部分是静态的 我只需要在用户是否登录时做一些花哨的事情 所以我试图在页面A上放置一个 并在页面B的应用程序中设置触发器 这样我就可以将页面 A 缓存在 varnish 上
  • Android - 在sqlite数据库中存储敏感数据

    我需要将敏感数据存储在 Android 应用程序的 sqlite 数据库中 我如何确定这些数据非常安全 我知道我可以使用密钥加密数据 但是我将该密钥存储在哪里 我也不想要求用户填写密钥 我只是希望它能够自行工作 因为我害怕逆向工程 所以我也
  • 自定义代码访问安全属性

    我创建了以下属性 Serializable AttributeUsage AttributeTargets Class AttributeTargets Method AllowMultiple true Inherited true pu
  • 在同一个 nginx 服务器块上公开多个 api uri

    Goal 我的目标是在同一个 nginx 服务器上设置多个后端 api 容器 http localhost 80 api account gt 调用 http account service 9000 http localhost 80 a
  • 在centos中安装sqlite3 dev和其他包

    我正在尝试使用 cpanel 在 centos 机器上安装 sqlite dev 和其他库 以便能够编译应用程序 我对 debian 比 centos 更熟悉 我知道我需要的库是 libsqlite3 dev libkrb5 dev lib
  • 保护 REST 和 JSON

    我想利用 RESTful 架构构建提供 JSON 数据的 Web 服务 但我只想要我自己的客户端应用程序可以从我的网络服务请求 基本上 我的 Web 服务包含不供公众使用的敏感数据 但我想以这种方式构建它 以便我可以构建连接到我的 Web
  • 如何使用 PHP 正确添加跨站请求伪造 (CSRF) 令牌

    我正在尝试为我网站上的表单添加一些安全性 其中一个表单使用 AJAX 另一个表单是简单的 联系我们 表单 我正在尝试添加 CSRF 令牌 我遇到的问题是令牌有时只显示在 HTML 值 中 其余时间 该值为空 这是我在 AJAX 表单上使用的

随机推荐

  • 如何在 Debian 10 上安装和使用 PHP Composer

    Composer是 PHP 的依赖管理器 类似于Node js 的 npm or Python 的点子 Composer 将提取您的项目所依赖的所有必需的 PHP 包并为您管理它们 它用于所有现代 PHP 框架和平台 例如 Laravel
  • 如何在 Ubuntu 18.04 上使用 Apache 安装和保护 phpMyAdmin

    phpMyAdmin 是一个开源 PHP 应用程序 旨在通过基于 Web 的界面处理 MySQL 和 MariaDB 服务器的管理 phpMyAdmin 允许您管理 MySQL 数据库 用户帐户和权限 执行 SQL 语句 以各种数据格式导入
  • 如何在 Debian 10 上设置 SSH 密钥

    Secure Shell SSH 是一种加密网络协议 用于客户端和服务器之间的安全连接 支持各种身份验证机制 加密连接可用于在服务器上执行命令 X11 隧道 端口转发等 基于密码和公钥是两种最常见的身份验证机制 使用公钥进行认证是基于数字签
  • 如何在 CentOS 7 上设置 OpenVPN 服务器

    无论您是想在连接不可信的公共 Wi Fi 网络时安全可靠地访问互联网 绕过地理限制内容还是允许您的同事在远程工作时安全地连接到您的公司网络 使用 VPN 都是最佳解决方案 VPN 允许您连接到远程 VPN 服务器 使您的连接加密且安全 并通
  • 如何在 CentOS 7 上安装 TeamViewer

    团队查看器是一个跨平台的解决方案 可用于计算机之间的远程控制 桌面共享和文件传输 TeamViewer 是专有计算机软件 不包含在 CentOS 存储库中 在本教程中 我们将逐步完成在 CentOS 7 上安装 TeamViewer 所需的
  • Linux 重启(重启)命令

    当内核更新时 除非您使用Livepatch或KernelCare 否则您需要重新启动Linux系统 在其他情况下也可能需要重新启动系统 例如 排除硬件问题 安装应用程序等时 如果您运行的是无头 Linux 服务器 您需要知道如何从命令行重新
  • 如何创建可启动的 Linux USB 驱动器

    通常 在笔记本电脑或 PC 上安装某些 Linux 发行版的全新副本时 您需要一个包含要安装的发行版的可启动 USB 本教程将引导您完成在 Windows macOS 和 Linux 计算机上创建可启动 Linux USB 记忆棒所需的步骤
  • 如何在 Debian 10 上安装 Visual Studio Code

    视觉工作室代码是微软开发的免费开源跨平台代码编辑器 它具有内置的调试支持 嵌入式Git控制 语法突出显示 代码完成 集成终端 代码重构和片段 可以使用扩展来扩展 Visual Studio Code 功能 本教程介绍如何在 Debian 1
  • 如何检查 PostgreSQL 版本

    PostgreSQL 通常简称为 Postgres 是一个开源通用对象关系数据库管理系统 在某些情况下 了解系统上安装并运行的 PostgreSQL 服务器版本可能很重要 例如 如果您要安装需要特定 PostgreSQL 版本的应用程序 则
  • 如何在 Ubuntu 20.04 上安装 R

    R 是一种开源编程语言和免费环境 专门从事统计计算和图形表示 它主要由统计学家和数据挖掘人员用于开发统计软件和执行数据分析 本文介绍了在 Ubuntu 20 04 上安装 R 所需的步骤 先决条件 在继续本教程之前 请确保您已满足以下先决条
  • 如何在 Debian 10 上安装 TeamViewer

    团队查看器是一款跨平台应用程序 可用于远程控制 桌面共享 在线会议以及计算机之间的文件传输 本教程介绍如何在 Debian 10 Buster 上安装 TeamViewer 先决条件 在继续本教程之前 请确保您以以下身份登录具有 sudo
  • 如何在 Python 中注释

    编写 Python 代码时 让代码简洁且易于理解始终是一个好习惯 组织代码 为变量和函数指定描述性名称是实现此目的的几种方法 提高代码可读性的另一种方法是使用注释 注释是用于解释代码的人类可读的解释或注释 例如 如果您编写了一个复杂的正则表
  • 如何在 Debian Linux 9 上安装 VirtualBox

    虚拟盒子是一款开源跨平台虚拟化软件 允许您同时运行多个来宾操作系统 虚拟机 本教程介绍如何在 Debian 9 上安装最新的 VirtualBox 6 0 先决条件 您需要以以下身份登录具有 sudo 访问权限的用户能够在 Debian 系
  • 如何在 Debian 10 上安装 TensorFlow

    TensorFlow是谷歌打造的一个开源机器学习平台 它可以在不同设备上的CPU或GPU上运行 TensorFlow 可以在 Python 虚拟环境中安装在系统范围内 作为Docker容器 或使用 Anaconda 在本教程中 我们将解释如
  • 如何在 Ubuntu 16.04 上将 Apache Web 根移动到新位置

    介绍 在 Ubuntu 上 默认情况下 Apache2 Web 服务器将其文档存储在 var www html 它通常与操作系统的其余部分一起位于根文件系统上 但有时 将文档根移动到另一个位置会很有帮助 例如单独安装的文件系统 例如 如果您
  • 如何在 Ubuntu 16.04 上使用 Apache 和 mod_wsgi 为 Django 应用程序提供服务

    介绍 Django 是一个功能强大的 Web 框架 可以帮助您快速启动 Python 应用程序或网站 Django 包含一个简化的开发服务器 用于在本地测试代码 但对于任何与生产稍微相关的事情 都需要更安全 更强大的 Web 服务器 在本指
  • Java线程等待、通知和notifyAll示例

    java中的Object类包含三个final方法 允许线程就资源的锁定状态进行通信 这些方法是wait notify and 通知全部 那么今天我们就来研究一下java程序中的wait notify和notifyAll Java中的等待 通
  • Systemd 要点:使用服务、单位和期刊

    介绍 近年来 Linux 发行版越来越多地从其他 init 系统过渡到systemd The systemd工具套件提供了快速灵活的初始化模型 用于从启动开始管理整个机器 在本指南中 我们将向您快速介绍您在管理应用程序时需要了解的最重要的命
  • Primefaces FileUpload 组件示例教程

    今天我们将研究 Primefaces FileUpload 组件 HTML 为您提供file输入标签来选择文件 但是我们需要更多信息才能将文件上传到服务器 Primefaces 为您提供现成的解决方案 消除了这种负担文件上传组件帮助您创建漂
  • 如何在 CentOS 7 上为 Nginx 创建自签名 SSL 证书

    介绍 TLS 或传输层安全 及其前身SSL代表安全套接字层 是用于将正常流量包装在受保护的加密包装器中的 Web 协议 使用此技术 服务器可以在服务器和客户端之间安全地发送流量 而不会出现消息被外部各方拦截的可能性 证书系统还帮助用户验证他