在本地的测试环境中,当我们没有https的证书时,又想使用https,我们该怎么办呢?我们可以在服务器中生成自己的证书,当然这个证书只能是用在测试环境中,因为他们没有经过第三方的认证。
下面是配置的过程,我们的目的是生成 ssl_certificate 和ssl_certificate_key 。
我们要把证书放在/usr/local/nginx/ssl/private 目录下,如果没有这个目录的,创建并进入目录:
mkdir -p /usr/local/nginx/ssl/private
cd /usr/local/nginx/ssl/private
这个私钥是服务器的根,不能轻易的丢失,因此在创建的过程中,需要输入两次密码,记得保持一致。
openssl genrsa -des3 -out server.key 1024
第三方SSL证书颁发机构发给我们的请求文件CSR证书,该证书要配置在ssl_certificate 下。在操作的过程中会提示输入密码。
openssl req -new -key server.key -out server.csr
改证书配置在 ssl_certificate_key ,生成如下:
openssl x509 -req -in server.csr -out server.crt -signkey server.key -days 3650
openssl rsa -in server.key -out server.key.unsecure
到这里我们已经生成了https所需要的两个证书。
xxxx.com.conf 配置如下:
server {
listen 80;
listen 443 ssl;
ssl_certificate /usr/local/nginx/ssl/private/server.crt;
ssl_certificate_key /usr/local/nginx/ssl/private/server.key.unsecure;
......
重启如下:
/etc/init.d/nginx restart
Chrome打开https地址,提示“您的连接不是私密连接”,选择高级,继续前往xxx.com(不安全)
|