生成证书
1. 使用openssl生成密钥privkey.pem:
openssl genrsa -out privkey.pem 1024/2038
2. 使用密钥生成证书server.pem:
openssl req -new -x509 -key privkey.pem -out server.pem -days 365
证书信息可以随便填或者留空,只有Common Name要根据你的域名填写。
以我的个人网站为例Common Name (e.g. server FQDN or YOUR name) []: wuyanxin.com
也可以通过*.yourdomain.com来匹配你的二级域名
配置nginx
server {listen 443;server_name youdomain.com;ssl on;ssl_certificate /path/to/server.pem;ssl_certificate_key /path/to/privkey.pem;...
}
复制代码3) 修改配置并保存后,Nginx安装目录运行nginx.exe -s reload命令可重启Nginx使配置生效。
4) 通过https:\\xxxx.com方式访问你的网站,如果能够正常访问,浏览器左边出现绿色的标记或者出现锁的标记那就成功了。
几点注意事项:
1. 如果HTTPS方式访问网站出现无响应的情况,可以看看自己的服务器防火墙配置,是不是需要将443端口加到例外中去;
2. 注意自己xxx.pem和xxx.key的存放路径,区分相对路径和决定路径使用方式;
3. 通过Nginx安装目录下的logs文件夹中的access.log和error.log日志文件来进行排错;
4. 同一个Nginx可以配置多个HTTPS的域名,只需要将上面443端口的监听配置复制一份加到配置文件中,然后修改好相应的server_name、xxx.pem和xxx.key文件路径即可。
补充一点配置:
如果Nginx配置了HTTPS,那背后的Tomcat就没有必要再进行配置了,另外,为了兼容原来80端口的HTTP方式的访问,可以将80端口的访问请求全部转发到443端口上,增加配置如下:
server {listen 80;server_name your-domain.com;location = / {rewrite ^(.*) https://your-domain.com/$1 permanent;}location / {rewrite ^(.*) https://your-domain.com/$1 permanent;}
}复制代码验证配置,重启nginx
$ sudo nginx -t && sudo nginx -s reload
复制代码信任证书
这时访问你的站点会得到一个不安全提示,因为你的证书不是一个有效的证书颁发机构颁发的。
这时需要我们手动信任证书。














