SSL证书申请以及配置流程

Lou.Chen2024年2月22日
大约 3 分钟

申请SSL证书

腾讯云SSL证书申请

https://cloud.tencent.com/document/product/400/6814open in new window

image-20220708134607139
  • 申请免费证书
image-20220708135234000
  • 提交资料
image-20220708135304314
  • 将生成的SSL域名记录添加到自己指定的域名厂商并添加域名解析。提交后等待机构签发
image-20220708141008028

免费SSL证书

https://freessl.cn/open in new window

视频:https://www.bilibili.com/video/BV1i7411T71N/?spm_id_from=333.337.search-card.all.click&vd_source=b45b675d27388bb3d43376c48fba51c9open in new window

image-20240221232405098

image-20240221231906546image-20240221232251974

image-20240221232838429

使用Nginx安装SSL证书

https://cloud.tencent.com/document/product/400/35244open in new window

  • 获取证书:以下两种获取的证书形式都可以

    • .crt证书 + .key

    • .pem证书 + .key

  • 将已获取到的 .crt 证书文件和 .key 私钥文件从本地目录拷贝到 Nginx 服务器的 /usr/local/nginx/conf 目录(此处为 Nginx 默认安装目录,请根据实际情况操作)下。

image-20220708142918087
  • 编辑 Nginx 根目录下的 conf/nginx.conf 文件。修改内容如下:
server {
        #SSL 访问端口号为 443
        listen 443 ssl; 
        #填写绑定证书的域名
        server_name cloud.tencent.com; 
        #证书文件名称
        ssl_certificate cloud.tencent.com_bundle.crt; 
        #私钥文件名称
        ssl_certificate_key cloud.tencent.com.key; 
        ssl_session_timeout 5m;
        #请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; 
        ssl_prefer_server_ciphers on;
        location / {
           #网站主页路径。此路径仅供参考,具体请您按照实际目录操作。
           #例如,您的网站运行目录在/etc/www下,则填写/etc/www。
            root html; 
            index  index.html index.htm;
        }
    }
  • 在 Nginx 根目录下,通过执行以下命令验证配置文件问题 /usr/local/nginx/sbin/nginx -t,若提示找不到ssl模块,则需要安装ssl

    image-20220708144206708

    参考:https://www.cnblogs.com/ghjbk/p/6744131.htmlopen in new window

    • 切换到源码包目录/root/nginx/nginx-1.9.9

    • 执行命令:./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module

    • 执行命令:make

      这里不要进行make install,否则就是覆盖安装

    • 然后备份原有已安装好的nginx:cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak

    • 然后将刚刚编译好的nginx覆盖掉原有的nginx(这个时候nginx要停止状态)cp ./objs/nginx /usr/local/nginx/sbin/

    • 通过命令查看是否已经加入成功: /usr/local/nginx/sbin/nginx -V 

    • 启动nginx即可

HTTP 自动跳转 HTTPS 的安全配置

server {
    listen 80;
    #填写绑定证书的域名
    server_name cloud.tencent.com; 
    #把http的域名请求转成https
    return 301 https://$host$request_uri; 
}

Https下HTTP资源不能访问解决方案

nginx安装了https证书 修改为https访问后,但应用内有些http的,导致一些样式或者页面访问报错,因为https下面默认访问http是会报错的。

解决方案:我们修改下nginx的转发策略,只需在代理转发添加如下配置即可:

Location / {
	add_header Content-Security-Policy upgrade-insecure-requests;
}