在当前的网络环境中,为了保障网站的用户信息安全,使用SSL证书已经成为了一个标配。Nginx是一个高性能的Web服务器软件,在使用Nginx进行Web服务的时候,安装一个SSL证书也是非常有必要的。在本文中,我们将详细介绍如何安装SSL证书的步骤及注意事项。
一、生成证书
首先,需要先生成证书文件。可以通过许多工具来创建SSL证书,如openssl、certbot等等。这里我们以certbot为例,通过命令行在服务器中完成证书生成。
安装certbot:
yum install certbot
获取ssl证书:
certbot certonly --nginx -d example.com
其中example.com为你的域名,请替换为你自己的域名。
此时,会有一系列的提示信息,按照提示进行操作即可。在完成后,你将获得3个文件:
- privkey.pem: 私钥
- fullchain.pem: 公钥和根证书,并在其中排列。
- chain.pem: 根证书
二、安装证书
安装nginx
在安装nginx之前,请确保先安装好openssl、pcre、zlib等依赖的安装包,在此不多赘述。
yum install nginx
修改nginx配置文件
在nginx的配置文件中增加ssl证书的路径,以及启用SSL服务。
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /path/to/fullchain.pem;
ssl_certificate_key /path/to/privkey.pem;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
add_header Strict-Transport-Security "max-age=31536000; includeSubdomains; preload;";
}
在以上代码中,listen 443 ssl启用了Web服务的SSL服务端口,server_name指定域名,ssl_certificate和ssl_certificate_key指定证书的路径,除此之外用的都是SSL的标准配置。
注意:nginx中的http模块需要启用ssl模块。
http {
server_tokens off;
include mime.types;
default_type application/octet-stream;
sendfile on;
gzip on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
server {
listen 80;
server_name example.com;
return 301 https://$server_name$request_uri;
}
}
重启nginx服务
重启nginx服务,若没有出现错误,那么恭喜你已经完成了SSL证书的安装。
三、注意事项
- 请保证在生成证书的时候输入正确的域名,否则无法通过SSL证书验证。
- 在nginx配置文件中指定证书文件时,必须是绝对路径。
- SSL服务需要占用独立的端口(一般为443),不要与其他Web服务共用。
- 使用SSL协议时,使用其他传输协议的API需要做相应的修改,以配合SSL协议工作。
总结
在安装Nginx SSL证书的时候,需要先生成证书,然后修改Nginx的配置文件,再重启Nginx服务即可。在整个过程中,注意事项必须要遵守,才能保证SSL证书能够正常使用,确保用户信息的安全。
互亿无线力图为您带来全面的SSL证书解决方案,守护您网站的安全和信誉。我们致力于提供各种类型的SSL证书,如DV(域名验证)、OV(组织验证)和EV(扩展验证)证书,满足您不同的安全需求。我们为您提供多种证书类型选择,包括单域名、多域名以及通配符证书。以满足您的网站架构需求。我们与全球知名的证书品牌,例如Globalsign、DigiCert、GeoTrust、Symantec、Sectigo等保持紧密合作,确保为您提供高品质的SSL证书。
![]() |
一站式SSL证书申请平台 |
![]() |
SSL证书快速签发服务 |
![]() |
我们提供高性价比的SSL证书价格方案 |
![]() |
我们的完备SSL证书服务 |
1.查看网站是HTTPS链接,可手动输入HTTPS链接查看网站是否能打开,如果能打开,说明网站部署了SSL证书。
2.查看网站地址栏是否有小锁或绿色地址栏显示,这表明网站部署了SSL证书。相反,如果网站地址栏小锁叉或显示“不安全”,则表明网站没有部署SSL证书或部署错误的SSL证书。
1.DES对称加密算法
DES加密算法于1976年推出,是最古老的加密方法之一。DES将64个纯文本数据块分为两个单独的32个块,并对每个块进行加密,从而将明文数据的64个块转换为密文。
由于DES已经被许多安全人员破解,它不再被使用,并于2005年正式被废弃。DES最大的缺点是加密钥长度短,易于暴力破解。
2.3DES加密算法
3DES是DES算法的升级版本,在20世纪90年代末投入使用。3DSE算法在每个数据块中三次使用,比DES更难破解。但与DES一样,研究人员也在3DES算法中发现了严重的安全漏洞,这使得美国标准技术研究所在2023年后宣布废除3DES算法。
3.AES对称加密算法
AES是DES算法的替代品,也是最常用的加密算法之一。与DES不同,AES是由不同密钥长度和组大小的密码组成的一组分组密码。AES算法首先将明文数据转换为块,然后用密钥加密,AES密钥长度为128、192或256位,数据分组加密解密128位,安全性要高得多,目前广泛应用于金融、在线交易、无线通信、数字存储等领域。
4.RSA非对称算法
RSA是在1977年发明的,是目前使用最广泛的非对称算法,其安全性是基于它所依赖的素数分解。根据数论,寻找两个素数相对简单,但将其乘积因式分解极其困难,因此乘积公开可以作为加密密钥。事实证明,今天的超级计算机很难破解RSA算法。2010年,一组研究人员模拟破解768位RSA算法,发现使用超级计算机至少需要1500年才能破解。目前,RSA普遍使用2048位密钥,因此破解难度可想而知。因此,RSA算法从提出到现在已经近30年了,经历了各种攻击的考验,逐渐被人们接受,普遍认为是目前最好的公钥方案之一。
5.ECC非对称加密算法
ECC又称椭圆曲线加密算法,是一种基于椭圆曲线数学理论的非对称加密算法。与RSA相比,ECC可以使用较短的密钥来实现与RSA相同甚至更高的安全性。根据目前的研究,160位ECC加密安全性相当于1024位RSA加密,210位ECC加密安全性相当于2048位RSA加密。较短的密钥只需要较少的网络负载和计算能力,因此在SSL证书中使用ECC算法可以大大降低SSL握手时间,缩短网站响应时间。
6.SM2加密算法
SM2是中国国家密码管理局于2010年发布的基于椭圆曲线密码的公钥密码算法标准。SM2是ECC256位的一种,其密钥长度为256bit,包括数字签名、密钥交换和公钥加密,用于替换RSA/DH/ECDSA/ECDH等国际算法。SM2的安全强度高于RSA2048位,而且运算速度更快,因此广泛应用于CFCA等国密证书中。
1、生成加密自签名(SSL)证书
使用命令:
opensslreq-new-x509-newkeyrsa:2048-keyout/data/server.key-out/data/server.crt
注:执行命令后,需要输入密码,然后依次输入国家、地区、城市、组织、组织单位、Commonname和Email。其中,Commonname,可以写自己的名字或域名,如果要支持https,Commonname应该与域名保持一致,否则会引起浏览器警告。
2、生成不加密的签名(SSL)证书
1)生成私钥
使用openssl工具生成RSA私钥
opensslgenrsa-des3-out/data/server.key2048
注:生成rsa私钥,des3算法,2048位强度,server.key是一个密钥文件名,生成一个私钥,要求您输入这个key文件的密码至少提供四个密码,因为您必须在生成时输入密码。您可以在输入后删除它(因为它将来会被nginx使用。每次reloadnginx配置,您都需要验证此PAM密码)。
2)删除密码
mv/data/server.key/data/server.key.org(或cp/data/server.key/data/server.key.org)
opensslrsa-in/data/server.key.org-out/data/server.key
3)生成CSR(证书签名请求)
生成私钥后,根据这个key文件生成证书请求csr文件
使用OpenSSL实现自签名,具体操作如下:
opensslreq-new-key/data/server.key-out/data/server.csr
注:执行命令后,需要输入密码,然后依次输入国家、地区、城市、组织、组织单位、Commonname和Email。其中,Commonname,可以写自己的名字或域名,如果要支持https,Commonname应该与域名保持一致,否则会引起浏览器警告。
4)生成自签名crt证书
最后,根据key和csr生成crt证书文件
openslx509-req-days3650-in/data/server.csr-signkey/data/server.key-out/data/server.crt
150,000家
企业客户
21年
行业经验
2V1
2对1客户支持