nginx https 单机设置自签名证书
nginx配置好后访问会提示不安全
这时候就需要配置ssl证书,一般都是购买或者申请的,如果是内网可以用自签名证书
前置条件要安装openssl,centos7.9应该默认安装
可以通过 以下指令查看版本
openssl version
首先安装nginx,创建目录,等会证书文件就放在这
mkdir /etc/nginx/ca
这里稍微说明一下ssl证书流程,除了一般的客户端和服务端还有一个ca机构,主要负责颁发证书和验证证书。当然我们离线自签名证书,这个ca也就在服务端了。
key是服务器上的私钥文件,用于对发送给客户端数据的加密,以及对从客户端接收到数据的解密
csr是证书签名请求文件,用于提交给证书颁发机构(CA)对证书签名
crt是由证书颁发机构(CA)签名后的证书,或者是开发者自签名的证书,包含证书持有人的信息,持有人的公钥,以及签署者的签名等信息
主要就是这三个文件,我们依次来生成
我们进入到之前的文件夹里执行
openssl genrsa -des3 -out server.key 1024
这是生成key也就是私钥,用来负责加解密,这里要输入一个密码后面要用到
接下来生成csr,也就是请求文件
openssl req -new -key server.key -out server.csr
正规流程是将请求文件给ca机构来签名,我们自签名直接生成就好
接下来要需要依次输入国家,地区,城市,组织,组织单位,Common Name和Email,注意Common Name要和你域名一致
下一步就是生成证书
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
最后为了方便使用,去掉私钥的密码
openssl rsa -in server.pass.key -out server.key
在/etc/nginx/nginx.conf加上以下内容
ssl_certificate /etc/nginx/ca/server.crt; ssl_certificate_key /etc/nginx/ca/server.key; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; ssl_session_cache shared:SSL:20m; ssl_session_timeout 180m;
这时候访问https
发现还是提示,这是因为证书没导入客户端。
下载crt文件导入浏览器和电脑
*导入成功后刷新网站
edge可以了但是chrome貌似还不行,估计要自建ca来了,之后研究(可能要域名而不是ip)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探