b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

aaron_agu

电脑杂谈  发布时间:2020-05-18 05:02:03  来源:网络整理

ssl证书 https ssl_ssl 证书_ssl证书 制作

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

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

在本教程中,我们将向您展示如何在Ubuntu 16.04服务器上设置与Nginx Web服务器一起使用的自签名SSL证书.

注意: 自签名证书将加密服务器与任何客户端之间的通信. 但是,由于Web浏览器不包含任何受信任证书颁发机构的签名,因此用户无法使用此证书来自动验证服务器的身份.

如果您没有与服务器关联的域名,并且没有加密的Web界面不面向用户的实例,则可能需要使用自签名证书.

在开始之前,您应该为非root用户配置sudo权限. 您可以按照Ubuntu 16.04的初始服务器设置来学习如何设置此类用户帐户. 没有服务器的学生可以在这里购买它,但是我个人建议您使用免费的腾讯云开发者实验室进行实验,并在购买服务器之前学习安装.

您还需要安装Nginx Web服务器. 如果要在服务器上安装整个LEMP(Linux,Nginx,MySQL,PHP)堆栈,则可以按照我们的教程在Ubuntu 16.04上设置LEMP.

如果只需要Nginx Web服务器,则可以按照我们的指南在Ubuntu 16.04上安装Nginx.

完成准备后,请继续以下操作.

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

我们可以使用OpenSSL在一个命令中创建自签名密钥和证书对:

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/nginx-selfsigned.key -out /etc/ssl/certs/nginx-selfsigned.crt

系统将询问您一系列问题. 在讨论之前,让我们看看发出的命令中发生了什么:

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

适当地填写提示. 最重要的行是“通用名称”行(例如服务器FQDN或YOUR名称). 您需要输入与服务器关联的域名或服务器的公共IP地址.

整个提示如下:

OutputCountry Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:New York
Locality Name (eg, city) []:New York City
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Bouncy Castles, Inc.
Organizational Unit Name (eg, section) []:Ministry of Water Slides
Common Name (e.g. server FQDN or YOUR name) []:server_IP_address
Email Address []:admin@your_domain.com

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

在使用OpenSSL的同时,我们还应该创建一个强大的Diffie-Hellman小组来与客户协商“完全向前保密”.

我们可以通过输入以下内容来实现:

ssl证书 制作_ssl 证书_ssl证书 https ssl

sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048

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

我们在/ etc / ssl目录中创建了密钥和证书文件. 现在,我们只需要修改Nginx配置即可利用它们.

我们将对配置进行一些调整.

我们将创建一个配置代码段,其中包含SSL密钥和证书文件的位置. 我们将创建一个包含强大的SSL设置的配置代码段,以后可以与任何证书一起使用. 我们将调整Nginx服务器块以处理SSL请求,并使用上面的两个片段.

这种配置Nginx的方法将使我们能够保持干净的服务器块并将常见的配置段放入可重用的模块中.

首先,让我们在/ etc / nginx / snippets目录中创建一个新的Nginx配置代码片段.

为了正确地区分此文件,我们将其称为self-signed.conf:

sudo nano /etc/nginx/snippets/self-signed.conf

在此文件中,我们仅需要将ssl_certificate指令设置到我们的证书文件以及与ssl_certificate_key相关的密钥. 在我们的教程中,它的设置如下:

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

添加这些行之后,保存并关闭文件.

接下来,我们将创建另一个代码段来定义一些SSL设置. 这将使Nginx具有强大的SSL密码套件ssl 证书,并启用一些有助于保护服务器安全的高级功能.

我们将设置的参数可以在以后的Nginx配置中重用,因此我们将为文件分配一个通用名称:

sudo nano /etc/nginx/snippets/ssl-params.conf

链接到上述网站的推荐设置可提供强大的安全性. 有时,这是以更高的客户端兼容性为代价的. 如果需要支持较旧的客户端,则可以通过单击页面上标有“是的,请给我一个密码套件以与该软件的旧/旧版本一起使用”的链接访问该列表. 此列表可以替换下面复制的项目.

使用哪种配置的选择很大程度上取决于您需要支持的内容. 两者都将提供出色的安全性.

出于我们的目的,我们可以完全复制提供的设置. 我们只需要进行一些小的修改.

首先,我们将为上游请求添加首选的DNS解析器. 我们将使用Google. 我们还将继续设置ssl_dhparam指向我们之前生成的Diffie-Hellman文件.

最后,您应该花一点时间阅读HTTP Strict Transport Security或HSTS,尤其是有关“预加载”功能的信息. 预加载HSTS可以提高安全性,但是如果意外激活或错误激活了它,则可能会产生更大的影响. 在本教程中,我们不会预加载设置,但是如果您确定理解其含义,则可以对其进行修改:

ssl 证书_ssl证书 制作_ssl证书 https ssl

# from https://cipherli.st/
# and https://raymii.org/s/tutorials/Strong_SSL_Security_On_nginx.html
​
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
ssl_ecdh_curve secp384r1;
ssl_session_cache shared:SSL:10m;
ssl_session_tickets off;
ssl_stapling on;
ssl_stapling_verify on;
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 Strict-Transport-Security "max-age=63072000; includeSubdomains";
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
​
ssl_dhparam /etc/ssl/certs/dhparam.pem;

由于我们使用自签名证书,因此我们将不使用SSL部署. Nginx只会输出警告,禁用自签名证书的部署,然后继续正常运行.

完成后保存并关闭文件.

现在我们有了代码段,我们可以调整Nginx配置以启用SSL.

我们将在本教程中假定您正在使用目录/ etc / nginx / sites-available中的默认服务器阻止文件. 如果您正在使用另一个服务器阻止文件,请在以下命令中替换其名称.

在继续之前,让我们备份当前的服务器阻止文件:

sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default.bak

现在,打开服务器阻止文件进行调整:

sudo nano /etc/nginx/sites-available/default

在内部,您的服务器块可能看起来像这样:

server {
    listen 80 default_server;
    listen [::]:80 default_server;
​
    # SSL configuration
​
    # listen 443 ssl default_server;
    # listen [::]:443 ssl default_server;
​
    . . .

我们将修改此配置,以自动将未加密的HTTP请求重定向到加密的HTTPS. 这为我们的网站提供了最佳的安全性. 如果要同时允许HTTP和HTTPS通信,请稍后使用备用配置.

我们将配置分为两个单独的块. 在第一条指令之后,我们将添加一条server_name指令,设置为服务器的域名或IP地址. 然后,将设置重定向到将创建的第二个服务器块. 之后,我们将关闭以下简短代码段:

注意: 我们将使用302重定向,直到确认一切正常. 接下来,我们可以将其更改为永久301重定向.

server {
    listen 80 default_server;
    listen [::]:80 default_server;
    server_name server_domain_or_IP;
    return 302 https://$server_name$request_uri;
}
​
    # SSL configuration
​
    # listen 443 ssl default_server;
    # listen [::]:443 ssl default_server;
​
    . . .

接下来,我们需要在下面直接启动一个新的服务器块以包含其余配置. 我们可以使用端口443取消注释两个侦听命令. 我们可以在这些行中添加http2以启用HTTP / 2. 接下来,我们只需要包含我们设置的两个代码段文件:

注意: 您可能只有一个侦听指令,其中包含每个IP版本和端口组合的default_server修饰符. 如果为这些端口的其他default_server设置启用服务器块,则必须从其中一个块中删除修饰符.


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-213897-1.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 伍唐珪
      伍唐珪

      美国威胁恐吓伊拉克没用的

    热点图片
    拼命载入中...