生成证书
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使配置生效。
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复制代码
信任证书
这时访问你的站点会得到一个不安全提示,因为你的证书不是一个有效的证书颁发机构颁发的。
这时需要我们手动信任证书。1 点击地址栏前面的红色感叹号,再点击“详细信息”
2 点击“View certification”
3 将上图中的证书拖拽到桌面,会在桌面生成一个“wuyanxin.com.cer”文件
4 双击打开,并输入密码
5 在列表中找到你的证书,双击打开
Paste_Image.png