nginx怎么用ssl证书(制作能在nginx和IIS中使用的ssl证书)
nginx怎么用ssl证书
制作能在nginx和IIS中使用的ssl证书目录
- 制作SSL证书
- 1、生成私钥Key
- 2、生成证书请求文件
- 3、生成crt证书文件
- 4、生成pfx证书安装包
- Nginx配置使用证书
- IIS配置使用证书
- 程序中使用证书
如果觉得证书制作比较麻烦,这里是本文制作好的证书:https://pan.baidu.com/s/1MJ5YmuZiLBnf-DfNR_6D7A (提取码:c6tj),密码都是:123456
园友可下载证书,然后根据后文nginx和IIS的使用方法来使用证书。
制作SSL证书好了,先创建一个空目录,在这个空目录下开始制作:
1、生成私钥Key
执行下面的命令生成私钥Key:
sudo openssl genrsa -des3 -out demo.key 1024 # openssl genrsa 命令是会用来生成RSA私有秘钥,不会生成公钥,因为公钥提取自私钥 # -des3 指定加密私钥文件用的算法,可以不用指定加密算法(自己测试用的话推荐不指定加密算法),可选:-des|-des3|-idea # -out demo.key 将生成的私钥保存至指定文件 # 1024 指定要生成的私钥的长度(单位 bit),默认为1024,一般要么就是1024或者2048
生成过程中会让输入密码,这里我测试使用的,直接输入了:123456
注:上面生成的demo.key中使用了-des3加密算法参数,所以在部署使用后,如果需要重启,可能会要求输入密码确认,比如nginx -s reload时,这样在自己测试使用时就很麻烦了
解决办法有两个:
a.生成密码后再删除密码
比如上面生成了一个demo.key的私钥文件,执行下面的命令可以重置:
sudo openssl rsa -in demo.key -out temp.key && sudo rm demo.key && sudo mv temp.key demo.key
b.在生成私钥是不要指定-des3参数
比如上面的生成demo.key的命令换成:
sudo openssl genrsa -out demo.key 1024
2、生成证书请求文件
执行下面的命令生成证书请求文件:
sudo openssl req -new -key demo.key -out demo.csr # openssl req 命令主要的功能有,生成证书请求文件, 查看验证证书请求文件,还有就是生成自签名证书 # -new 说明生成证书请求文件 # -key demo.key 指定已有的秘钥文件生成秘钥请求,只与生成证书请求选项-new配合。 # -out demo.csr 指定生成的证书请求或者自签名证书名称
命令执行后会让输入一些证书信息,具体可参考下图:
3、生成crt证书文件
执行下面的命令生成证书文件:
sudo openssl x509 -req -days 36500 -in demo.csr -signkey demo.key -out demo.crt # openssl x509 命令主要用于输出证书信息,签署证书请求文件、生成自签名证书、转换证书格式等 # -req 表明后面输入的是一个证书请求文件 # -days 36500 证书的有效期,单位是天(一百年后我们再见吧) # -in demo.csr 指定输入文件 # -signkey demo.key 签名证书秘钥 # -out demo.crt 指定证书的输出文件
如果提示类似如下,说明生成成功了:
4、生成pfx证书安装包
执行下面命令生成安装包文件:
sudo openssl pkcs12 -export -inkey demo.key -in demo.crt -out demo.pfx # openssl pkcs12 命令用于生成和分析pkcs12文件 # -export 指定了一个PKCS#12文件将会被创建 # -inkey demo.key 指定私钥文件的位置。如果没有被指定,私钥必须在-in filename中指定 # -in demo.crt 指定私钥和证书读取的文件 # -out demo.pfx 指定输出的pkcs12文件
执行命令后会输入密码,这里我输入同样是:123456
至此,证书就制作完成了,我们得到4个文件:
demo.crt:crt证书文件,nginx配置时可以用到 demo.csr:crt证书请求文件,现在基本上没什么用了 demo.key:私钥,nginx配置时可以用到 demo.pfx:证书安装包,iis部署时可以用到
创建一个nginx配置配置文件:
server { listen 4430 ssl; listen [::]:4430 ssl; ssl on; ssl_certificate /home/feng/ssl/demo.crt; #crt证书文件 ssl_certificate_key /home/feng/ssl/demo.key; #私钥文件 ssl_session_timeout 5m; ssl_protocols SSLv3 SSLv2 TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP; ssl_prefer_server_ciphers on; root /var/www/html; index index.html index.htm index.nginx-debian.html; server_name _; location / { try_files $uri $uri/ =404; } }
注意,这里我为了区分,没有使用默认的443端口,而是使用了4430端口
接着使用 nginx -t 验证和使用 nginx -s reload 重新加载后,使用浏览器访问4430可访问到了,只不过会提示存在风险,毕竟证书是自己制作的,如下图:
点击高级=》接受风险就可以了
IIS配置使用证书IIS配置证书需要pfx证书安装包(demo.pfx),这里以IIS7为例:
打开IIS,在主页中点击【服务器证书】
点击右边操作的【导入】,选择创建好的pfx证书文件,输入创建文件时输入的密码(上面第4步创建pfx文件时输入的密码,这里是123456):
接着选择你要设置添加https请求类型的网站,在右边操作中点击【绑定】,然后按照下图操作:
然后重启一下站点,在指定的端口使用https请求了
注:如果你的电脑安装了VMware等工具,443端口可能启动报错,可能提示:另一个程序正在使用此文件,进程无法访问。解决办法参考:https://www.jb51.net/article/109375.htm
程序中使用证书有时,我们还可能需要在程序中使用证书,比如在使用Grpc,我们默认是使用https的,或者我们只是想使用https请求,那么我们可能需要在程序中使用证书来操作,比如.net core中使用自制证书来生成https请求的项目:
我们创建一个.net core的web项目,使用上面创建的demo.pfx,修改Program.cs:
public class Program { public static void Main(string[] args) { CreateHostBuilder(args).Build().Run(); } public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureWebHostDefaults(webBuilder => { webBuilder.ConfigureKestrel(options => { options.ListenAnyIP(5000, listenOptions => { listenOptions.UseHttps(@"C:\inetpub\wwwroot\demo.pfx", "123456"); }); }); webBuilder.UseStartup<Startup>(); }); }
启动之后就可以使用https请求访问了
以上就是制作能在nginx和IIS中使用的ssl证书的详细内容,更多关于制作ssl证书的资料请关注开心学习网其它相关文章!
- dockernginx服务器教程(Docker镜像+nginx 部署 vue 项目的方法)
- nginx查看rewrite日志(Nginx Rewrite使用场景及配置方法解析)
- nginx怎么设置域名访问网页(Nginx服务器如何设置url链接)
- nginx的15种优化方案(Nginx开启Brotli压缩算法实现过程详解)
- nginxdjango部署(详解Django+uwsgi+Nginx上线最佳实战)
- 宝塔nginx配置修改(宝塔面板安装Tengine报错:nginx: [emerg] invalid IPv6 address in resolver)
- thinkphp静态怎么设置(浅谈thinkphp的nginx配置,以及重写隐藏index.php入口文件方法)
- nginx反向代理端口号(nginx 代理80端口转443端口的实现)
- nginx做转发配置weight啥意思(Nginx中break与last的区别详析)
- nginx反向代理多个server(Nginx反向代理多个服务器的实现方法)
- nginxdocker界面(Docker部署nginx实现过程图文详解)
- nginx负载均衡5种方法(Nginx如何配置负载均衡)
- nginx-rtmp-module 配置(Nginx搭建rtmp直播服务器实现代码)
- nginx事件模型有几种(Python实现监控Nginx配置文件的不同并发送邮件报警功能示例)
- nginx django部署(uwsgi+nginx代理Django无法访问静态资源的解决)
- nginx 配置解析(Nginx的rewrite模块详解)
- 乔欣首演古装大女主,颜值演技双在线(乔欣首演古装大女主)
- 于正又推女性古装大剧 杨蓉乔欣演女配,两位女主成 重头戏(于正又推女性古装大剧)
- 乔欣古装女主戏获热度 作为女主,却没吃到红利(乔欣古装女主戏获热度)
- 爱情是什么(爱情是什么最经典的话)
- 乔欣 古装剧中的高颜值(古装剧中的高颜值)
- 怎么才可以财富自由(如何让自己实现财富自由)
热门推荐
- vue组件轮播(vue+rem自定义轮播图效果)
- python使用什么函数定义匿名函数(Python匿名函数及应用示例)
- phpob函数使用方法(php中isset与empty函数的困惑与用法分析)
- 云服务器怎么上传16g文件(云服务器怎么上传下载文件?)
- dedecms中的有些功能如何修改(DEDECMS 扩展标签和dede自定义标签实现方法)
- mysql语句运行顺序(浅谈mysql执行过程以及顺序)
- iis6双php版本的设置(云主机IIS7.5支持PHP5.3以上版本和MYSQL)
- php哪个函数具有字符串截取功能(php字符串截取函数mb_substr用法实例分析)
- angularjs数据绑定类指令及作用(详解Angular数据绑定及其实现方式)
- vue中的mapgetter优势(vuex 中辅助函数mapGetters的基本用法详解)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9