如何在Arch Linux Web服务器上使用HTTPS

要求以root身份运行的命令以前缀#,而可以以普通用户身份运行的命令以前缀$。建议以root用户身份运行命令的方式是,以普通用户的身份为每个命令添加前缀sudo安装并熟悉文本编辑器,例如vi,vim,nano,emacs或其他类似的编辑器。

使用HTTPS安全服务

通过HTTPS提供内容可以使用非常强大的加密,因此,没有人拦截用户和Web服务器之间的流量,无法读取该内容。它不仅对流量本身进行加密,而且对所访问的URL进行加密,否则将暴露信息。一段时间以来,作为HTTPS Everywhere计划的一部分,Google一直根据网页是否使用HTTPS来部分确定搜索排名。

注意DNS查找不会公开正在连接的域名,但是在此过程中不会公开整个URL。

获取SSL / TLS证书

从技术上讲,TLS取代了HTTPS证书的SSL,但是,大多数地方只是继续使用更流行的术语SSL证书来调用TLS证书。遵循常用用法,本指南将执行相同的操作。

要使用HTTPS,您的Web服务器需要一个私钥(.key)才能私有使用,并需要一个证书(.crt)进行公开共享,其中包括一个公钥。必须签署证书。您可以自己对其进行签名,但是现代的浏览器会抱怨它们无法识别该签名者。例如,Chrome将显示:Your connection is not private. Attackers might be trying to steal your information... NET::ERR_CERT_AUTHORITY_INVALID。如果只有一群人在使用该网站,这是可以接受的,因为浏览器将允许继续进行操作。例如,在Chrome上,点击“高级”,然后点击“继续…(不安全)”;仍然会显示“不安全”并划掉“ https”。

请注意,此过程将询问您您所在的国家,州/省,地区,组织,组织单位和惯用名称,以及您的电子邮件地址;所有这些都可以在通过HTTPS连接到您网站的任何浏览器中访问。

还要注意,如果要给虚拟主机证书,则需要在下面提供不同的文件名,并在虚拟主机配置中指向它们。

切换到适合您的Web服务器的目录。

如果安装了Apache:

$ cd /etc/httpd/conf

如果您安装了Nginx:

$ cd /etc/nginx

进入正确的目录后,生成一个私钥(server.key)和自签名证书(server.crt):

# openssl req -new -x509 -nodes -newkey rsa:4096 -keyout server.key -out server.crt -days 825

设置只读权限,并且仅允许由根用户读取私钥:

# chmod 400 server.key
# chmod 444 server.crt

或者,您可以获取由受信任的证书颁发机构签名的证书。您可以支付各种公司(证书颁发机构)来为您签名证书。在考虑证书颁发机构时,重要的是要研究哪些浏览器和哪些版本可以识别它们。在较旧的浏览器版本上,某些新的证书颁发机构可能不被视为比自签名证书更正式的证书。

通常,您不仅需要一个公共IP地址,而且还需要一个域名。一些证书颁发机构可以将证书颁发给公共IP地址,但是很少这样做。

许多提供商都提供30天的免费试用期,建议从30天开始免费试用。这样一来,您可以在付款之前确保该过程对您有效。价格可能从每年几美元到几百美元不等,这取决于它是哪种类型以及诸如多个域或子域之类的选项。标准证书仅表示签署机构已验证获得证书的人可以在域上进行更改。扩展验证证书还将指示签名授权机构对请求者进行了一些尽职调查,并且在现代浏览器中将在URL内或URL附近显示一个绿色条。在验证您可以在域上进行更改时,某些签名机构会要求您在域名的重要探测地址接收电子邮件,例如admin@your-domain.com。许多提供替代验证,例如为您提供文件放置在服务器上,例如将文件放置在/srv/http/.well-known/pki-validation/Apache或/usr/share/nginx/html/.well-known/pki-validation/Nginx中,以用于单个主机目录配置。或临时创建一个CNAME条目,它们会在您域的DNS记录中为您提供。

您选择的签名机构可能具有略有不同的步骤,但是大多数将接受以下过程:

在适当的目录中,生成一个私钥(server.key):

# openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:4096 -out server.key

将私钥设置为只读,仅通过root用户:

# chmod 400 server.key

生成证书签名请求(server.csr)。当要求您输入时,必须输入您的域名Common Name,并且可以将质询密码留为空白:

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

将证书签名请求设置为只读,仅按root身份:

# chmod 400 server.csr

查看证书签名请求的内容。此信息是base64编码的,因此将看起来像随机字符:

# cat server.csr
-----BEGIN CERTIFICATE REQUEST-----
.....
-----END CERTIFICATE REQUEST-----

进行签名机构的过程,并在要求粘贴到CSR中时,复制并粘贴包括-----行在内的整个文件。根据您选择的签名授权和证书的类型,它们可能会立即为您提供已签名的证书,或者可能是几天。当他们给您签名的证书后,将其(包括-----BEGIN CERTIFICATE----------END CERTIFICATE-----行)复制到server.crt上面为您的Web服务器指定的正确目录中的名为文件中,并将其设置为只读:

# chmod 444 server.crt

配置您的Web服务器以使用私钥和证书

如果您使用的是防火墙,则需要启用到端口的传入TCP通信443

对于Apache

编辑/etc/httpd/conf/httpd.conf并取消注释这些行:

LoadModule ssl_module modules/mod_ssl.so
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
Include conf/extra/httpd-ssl.conf

请注意,如果您使用的是虚拟主机,则将上面的更改更改为/etc/httpd/conf/httpd.conf将在所有主机上使用相同的证书。要为每个主机提供自己的证书以避免浏览器抱怨该证书与域名不匹配,您需要编辑其每个配置文件/etc/httpd/conf/vhosts/以指向其自己的证书和私钥:

  • 更改<VirtualHost *:80><VirtualHost *:80 *:443>
  • 在此VirtualHost部分中,添加以下内容:
    SSLEngine on
    SSLCertificateFile "/etc/httpd/conf/YOUR-DOMAIN-NAME.com.crt"
    SSLCertificateKeyFile "/etc/httpd/conf/YOUR-DOMAIN-NAME.com.key"
    

重新启动Apache:

# systemctl restart httpd

对于Nginx

编辑/etc/nginx/nginx.conf并在底部附近,取消注释HTTPS server部分,并将行更改为以下内容:

ssl_certificate      server.crt;
ssl_certificate_key  server.key;
root                /usr/share/nginx/html;

请注意,如果您使用的是虚拟主机,则将上面的更改更改为/etc/nginx/nginx.conf将所有主机发送到该位置。要为每个主机分配自己的证书,您需要在其中编辑每个配置文件,/etc/nginx/sites-enabled/以拥有一个额外的服务器块来指向其自己的证书和私钥:

server {
    listen 443 ssl;
    server_name YOUR-DOMAIN-NAME.com;

    ssl_certificate      YOUR-DOMAIN-NAME.com.crt;
    ssl_certificate_key  YOUR-DOMAIN-NAME.com.key;

    ssl_session_cache   shared:SSL:1m;
    ssl_session_timeout 5m;

    ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers  on;

    location / {
        root /usr/share/nginx/YOUR-DOMAIN-NAME.com;
        index  index.html index.htm;
    }
}

重新启动Nginx:

# systemctl restart nginx
RIPRO主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
不思进取 » 如何在Arch Linux Web服务器上使用HTTPS

发表评论

提供最优质的资源集合

立即查看 了解详情