网站部署自签名https证书的方法
在搭建开发测试环境、内网管理系统时,许多开发者希望启用HTTPS加密而不想花钱购买商业https证书,这时自签名https证书成为了一种快速实现HTTPS的方案。自签名证书是指由搭建网站的人自己给自己签发、而不经过第三方权威CA机构验证的https证书,适合在开发测试、内网环境等非公开场合使用,下文将为大家介绍网站部署自签名https证书的方法。
一、使用openssl生成自签名https证书
openssl是一个几乎被所有Linux发行版默认集成的开源加密工具包,Windows和macOS用户也可通过官网下载安装,安装完成后通过openssl version验证是否安装成功。
生成自签名https证书最简便的方式是一条命令同时完成私钥生成和证书签发:
openssl req-x509-newkey rsa:2048-keyout private.key-out server.crt-days 3650-nodes
执行命令后,系统会提示填写国家、省份、城市、组织名称等信息。Common Name(CN)字段必须填写网站的域名或IP地址,其他信息可按需填写或留空。完成后,当前目录下将生成两个核心文件:私钥文件和自签名https证书文件。

二、在主流Web服务器上部署自签名https证书
1、Nginx服务器部署
①上传证书文件:将server.crt和private.key上传至服务器的/etc/nginx/ssl/目录(目录不存在需手动创建),建议将私钥权限设置为600,确保仅属主可读写。
②编辑Nginx站点配置文件,添加443端口监听并指定证书路径:
server{
listen 443 ssl;
server_name example.com;
ssl_certificate/etc/nginx/ssl/server.crt;
ssl_certificate_key/etc/nginx/ssl/private.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
}
server{
listen 80;
server_name example.com;
return 301 https://$host$request_uri;
}
③重载Nginx使配置生效:运行nginx-t测试语法,若显示“syntax is ok”则执行systemctl reload nginx。
2、Apache服务器部署
①安装SSL模块并生成https证书:
#Debian/Ubuntu系统
sudo a2enmod ssl
sudo apt-get install openssl
#证书文件生成后,上传至安全目录
“`
②编辑Apache SSL站点配置文件(如`/etc/apache2/sites-available/default-ssl.conf`),添加以下内容:
<VirtualHost*:443>
ServerName example.com
SSLEngine on
SSLCertificateFile/etc/apache2/ssl/server.crt
SSLCertificateKeyFile/etc/apache2/ssl/private.key
</VirtualHost>
③启用SSL站点并重启Apache:
sudo a2ensite default-ssl.conf#启用SSL站点
sudo systemctl restart apache2#重启Apache
自签名https证书在测试环境中可临时使用,但存在不可忽视的安全风险,如果网站需要对外提供服务,哪怕只是个人博客,也应避免使用自签名证书。安信证书深度合作DigiCert、GeoTrust、Sectigo、Globalsign等国际顶级CA机构,并推出了高性价比国产品牌速安信(AnTrust),覆盖DV(域名型验证)、OV(组织型验证)、EV(扩展型验证)全验证等级及单域名、通配符、多域名全类型。
相关推荐:《HTTPS证书获取流程介绍》

