MST

星途 面试题库

面试题:网络编程里HTTPS证书配置细节及影响

在后端网络编程中,当完成HTTPS证书申请后,针对不同的Web服务器(如Nginx、Apache),简述其配置HTTPS证书的详细步骤,并且说明配置过程中可能遇到的安全风险以及如何防范。
19.9万 热度难度
后端开发网络编程

知识考点

AI 面试

面试题答案

一键面试

Nginx配置HTTPS证书步骤

  1. 准备证书文件:通常有 .crt(证书文件)和 .key(私钥文件),将它们放置在服务器指定目录,如 /etc/nginx/ssl/
  2. 编辑Nginx配置文件:一般在 /etc/nginx/sites - available/ 目录下编辑你的网站配置文件(假设为 example.com),添加或修改以下内容:
server {
    listen 443 ssl;
    server_name example.com;

    ssl_certificate /etc/nginx/ssl/example.com.crt;
    ssl_certificate_key /etc/nginx/ssl/example.com.key;

    # 启用HSTS,告诉浏览器始终通过HTTPS访问该网站
    add_header Strict - Transport - Security "max - age = 31536000; includeSubDomains; preload";

    # 其他配置,如location块等
    location / {
        # 站点根目录等配置
        root /var/www/html/example.com;
        index index.html;
    }
}
  1. 检查配置并重启Nginx:执行 nginx -t 检查配置文件语法是否正确,若无误执行 systemctl restart nginx 使配置生效。

Apache配置HTTPS证书步骤

  1. 准备证书文件:同样将 .crt.key 文件放置在合适目录,如 /etc/httpd/conf/ssl/
  2. 编辑Apache配置文件:编辑 /etc/httpd/conf.d/ssl.conf 文件(不同系统路径可能有差异),找到并修改以下部分:
<VirtualHost _default_:443>
    ServerName example.com
    DocumentRoot /var/www/html/example.com
    SSLEngine on
    SSLCertificateFile /etc/httpd/conf/ssl/example.com.crt
    SSLCertificateKeyFile /etc/httpd/conf/ssl/example.com.key

    # 启用HSTS
    Header always set Strict - Transport - Security "max - age = 31536000; includeSubDomains; preload"
</VirtualHost>
  1. 检查配置并重启Apache:执行 httpd -t 检查配置,无误后执行 systemctl restart httpd 重启服务。

配置过程中可能遇到的安全风险及防范措施

  1. 证书泄露风险
    • 风险:若 .crt.key 文件权限设置不当,可能被非法获取,导致中间人攻击等。
    • 防范:确保证书和私钥文件权限为 600(只有文件所有者可读可写),并且放置在受保护的目录中,限制访问。
  2. 不安全的密码套件
    • 风险:使用弱密码套件可能被破解,导致数据传输被窃听或篡改。
    • 防范:在Nginx中,可以通过 ssl_protocols TLSv1.2 TLSv1.3; 限制使用的TLS协议版本,并通过 ssl_ciphers HIGH:!aNULL:!MD5; 设置安全的密码套件;在Apache中,使用 SSLProtocol all -SSLv2 -SSLv3SSLCipherSuite HIGH:!aNULL:!MD5 进行类似设置。
  3. 重定向问题
    • 风险:若没有正确配置从HTTP到HTTPS的重定向,用户可能仍通过不安全的HTTP访问网站。
    • 防范:在Nginx中,可在HTTP服务器块添加 return 301 https://$server_name$request_uri; 实现重定向;在Apache中,可通过在HTTP虚拟主机配置中添加 Redirect permanent / https://example.com/ 进行重定向。