生成证书
1. 安装nginx,包括nginx的ssl模块
2. 生成证书,通过openssl
3. 配置nginx的https访问
安装nginx和ssl模块
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-openssl={path-to-openssl-source-dir}
这边特别注意是openssl的源码目录, 而非安装目录, 编译,安装,openssl模块就编译到nginx当中去了
生成证书
主要步骤也在这里列一下:
a. 创建CA私钥, 利用私钥创建CA证书
#创建CA私钥
openssl genrsa -out rootCA.key 2048
#创建CA证书
openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 1024 -out rootCA.crt
b.创建server私钥以及CSR
#创建server私钥
openssl genrsa -out server.key 2048
#根据配置要的openssl参数创建服务器csr文件, 后面会用到,yourpath是openssl.cnf的实际路径,默认位置 /etc/pki/tls/openssl.cnf
openssl req -new -key server.key -out server.csr -config {yourpath}/openssl.cnf -extensions v3_req
c.使用CA证书给server.csr做签名
openssl x509 -req -days 500 -in server.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out server.crt -sha256 -extensions v3_req -extfile {yourpath}/openssl.cnf
最后得到两个文件
server.crt server.key
更新nginx的配置信息
server { listen 443; # HTTPS 需要使用的端口 ssl on; # 开启 Nginx SSL 模块 ssl_certificate /etc/ssl/certificate.crt; # 网站新证书路径 ssl_certificate_key /etc/ssl/private.key; # 网站新私钥路径 server_name your.domain.com; # 域名 access_log /var/log/nginx/nginx.vhost.access.log; error_log /var/log/nginx/nginx.vhost.error.log; location / { root /home/www/public_html/your.domain.com/public/; # 域名映射根路径 index index.html; } }
重启nginx服务
通过浏览器,输入https://ip:port来访问测试。