Nginx配置SSL证书部署HTTPS网站的方法(颁发证书)
2019/7/10 20:56:40
本文主要是介绍Nginx配置SSL证书部署HTTPS网站的方法(颁发证书),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
自行颁发不受浏览器信任的SSL证书
手动颁发
xshell登录服务器,使用openssl生成RSA密钥及证书
# 生成一个RSA密钥 $ openssl genrsa -des3 -out tfjybj.key 1024 # 拷贝一个不需要输入密码的密钥文件 $ openssl rsa -in dmsdbj.key -out tfjybj_nopass.key # 生成一个证书请求 $ openssl req -new -key tfjybj.key -out tfjybj.csr
这里会提示输入省份、城市、域名等信息,email得是域名后缀。这样就生成一个csr文件,提交给ssl提供商的时候就是这个csr文件。
(这里由于我没有截图,所以从网上找了一个图片,需要替换的是下面的33iq,换成tfjybj)
中间输入密码的时候,没有什么显示,不过就那么输入就好
# 自己签发证书 $ openssl x509 -req -days 365 -in tfjybj.csr -signkey tfjybj.key -out tfjybj.crt
把生成的证书放到nginx配置文件同级目录;
nginx配置
编辑nginx配置文件 nginx.conf,加https协议
server { server_name tfjybj.com; listen 443; ssl on; ssl_certificate /usr/local/nginx/conf/tfjybj.crt; ssl_certificate_key /usr/local/nginx/conf/tfjybj_nopass.key; # 若ssl_certificate_key使用tfjybj.key,则每次启动Nginx服务器都要求输入key的密码。 (开始我不知道,纳闷为啥启动nginx、关闭nginx都要输入密码) }
重启Nginx
自己颁发的SSL证书能够实现加密传输功能,但浏览器并不信任,会给出提示:
通过第三方颁发证书–阿里云
颁发证书
登录阿里云管理控制台,【云盾】菜单选择【证书服务】,选择购买证书;
我弄得免费版的做的测试,申请之后,经过一两天的审核,然后就可以下载证书了。下载解压后是两个文件,一个key结尾,私钥,一个是pem结尾,是公钥;
配置nginx
文件说明:
证书文件”申请的证书名字.pem”,包含两段内容,请不要删除任何一段内容。
如果是证书系统创建的CSR,还包含:证书私钥文件”申请的证书名字.key”。
( 1 ) 在Nginx的安装目录下创建cert目录,并且将下载的全部文件拷贝到cert目录中。如果申请证书时是自己创建的CSR文件,请将对应的私钥文件放到cert目录下并且命名为”申请的证书名字.key”;
( 2 ) 打开 Nginx 安装目录下 conf 目录中的 nginx.conf 文件,找到:
# HTTPS server # #server { # listen 443; # server_name localhost; # ssl on; # ssl_certificate cert.pem; # ssl_certificate_key cert.key; # ssl_session_timeout 5m; # ssl_protocols SSLv2 SSLv3 TLSv1; # ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP; # ssl_prefer_server_ciphers on; # location / { # # #} #}
( 3 ) 将其修改为 (以下属性中ssl开头的属性与证书配置有直接关系,其它属性请结合自己的实际情况复制或调整) :
server { listen 443; server_name localhost; ssl on; root html; index index.html index.htm; ssl_certificate cert/申请的证书名字.pem; ssl_certificate_key cert/申请的证书名字.key; ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; location / { root html; index index.html index.htm; } }
保存退出。
( 4 )重启 Nginx。
( 5 ) 通过 https 方式访问您的站点
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持找一找教程网。
这篇关于Nginx配置SSL证书部署HTTPS网站的方法(颁发证书)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-13用Nginx防范DDoS攻击的那些事儿
- 2024-12-13用Terraform在AWS上搭建简单NGINX服务器指南
- 2024-10-29Nginx发布学习:从入门到实践的简单教程
- 2024-10-28Nginx发布:新手入门教程
- 2024-10-21nginx 怎么设置文件上传最大20M限制-icode9专业技术文章分享
- 2024-10-17关闭 nginx的命令是什么?-icode9专业技术文章分享
- 2024-09-17Nginx实用篇:实现负载均衡、限流与动静分离
- 2024-08-21宝塔nginx新增8022端口方法步骤-icode9专业技术文章分享
- 2024-08-21nginx配置,让ws升级为wss访问的方法步骤-icode9专业技术文章分享
- 2024-08-15nginx ws代理配置方法步骤-icode9专业技术文章分享