在nginx服务器上部署使用自签发HTTPS证书的网站时,应如何配置以确保其安全性和正确性?
时间: 2024-11-03 10:11:13 浏览: 29
在nginx服务器上部署使用自签发HTTPS证书的网站,需要进行一系列步骤来确保其安全性和正确性。这里以CentOS 7.6系统为例,首先确保安装了openssl和nginx。以下是详细步骤:
参考资源链接:[使用openssl+nginx配置自签发HTTPS证书实战](https://wenku.csdn.net/doc/133egqy43r?spm=1055.2569.3001.10343)
1. **生成根密钥**:使用命令`openssl genpkey -algorithm RSA -out masee-key.pem -pkeyopt rsa_keygen_bits:2048 -aes-128-cbc -pass pass:Zict7780#@$sthjj`生成2048位的根密钥,并用aes-128-cbc算法加密。
2. **生成根证书请求**:创建一个配置文件***f,并运行`***f`生成根证书请求。
3. **签署根证书**:使用`openssl x509 -req -days 3650 -in masee-csr.pem -signkey masee-key.pem -out masee-ca.pem`命令签署根证书,有效期为10年。
4. **生成服务器私钥**:通过`openssl genpkey -algorithm RSA -out server-key.pem -pkeyopt rsa_keygen_bits:2048 -aes-128-cbc -pass pass:Zict7780#@$sthjj`生成服务器私钥。
5. **生成服务器证书请求**:使用`***f`命令创建服务器证书请求。
6. **签署服务器证书**:使用`openssl x509 -req -days 730 -in server.csr -CA masee-ca.pem -CAkey masee-key.pem -CAcreateserial -out server.crt`命令签署服务器证书,有效期为2年。
7. **配置nginx**:在nginx配置文件中指定服务器证书和私钥的路径,如下所示:
```
server {
listen 443 ssl;
server_***;
ssl_certificate /path/to/ssl/cert/server.crt;
ssl_certificate_key /path/to/ssl/private/server-key.pem;
ssl_client_certificate /path/to/ssl/cert/masee-ca.pem;
ssl_verify_client on;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
ssl_prefer_server_ciphers on;
location / {
# root html;
# index index.html index.htm;
}
}
```
确保启用了SSL/TLS协议,并配置了合适的加密套件和协议版本。
8. **客户端安装根证书**:将masee-ca.cer分发给所有客户端设备,并导入到系统的受信任证书颁发机构列表中。
通过以上步骤,你可以确保在nginx服务器上部署使用自签发HTTPS证书的网站的安全性和正确性。不过,如果你的网站是对外公开的,最好购买由权威CA签发的证书,因为自签证书可能会导致用户浏览器的不信任警告。
参考资源链接:[使用openssl+nginx配置自签发HTTPS证书实战](https://wenku.csdn.net/doc/133egqy43r?spm=1055.2569.3001.10343)
阅读全文