Nginx配置https
Nginx配置https首先要获得证书和key(密钥),测试用例用java自带的keytool工具生成,由于我们证书是自己生成所以只能绑定一个域名,对于我们测试足够用了。
1 证书一般放在ngingx里的conf目录里
打开cmd命令窗口,指定使用RSA算法生成一个颁发证书的机构:
执行命令:keytool -genkey -alias haojing -keypass 123456 -keyalg RSA -keysize 1024 -validity 365 -keystore C:/JavaSoftWare/nginx-1.14.0/conf/haojing.keystore -storepass 123456
注意:目录最好不要用绝对格式,可能会有意想不到的bug
2 以上设置可以随意,只是测试用例写的有点针对性,以上命令敲完以后在你相应目录下会生成一个文件
haojing.keystore
3 我们需要的证书和密钥都在这个keystore里,接下来我们生成cer证书,还是在该目录下
执行命令:keytool -export -alias haojing -keystore C:/JavaSoftWare/nginx-1.14.0/conf/haojing.keystore -storepass 123456 -rfc -file C:/JavaSoftWare/nginx-1.14.0/conf/haojing.cer
4 证书有了,接下里我们导出密钥,由于keytool不提供命令导出密钥,所以需要编写java类,测试类如下:
public class SslKey { public static KeyStore getKeyStore(String keyStorePath, String password) throws Exception { FileInputStream is = new FileInputStream(keyStorePath); KeyStore ks = KeyStore.getInstance("JKS"); ks.load(is, password.toCharArray()); is.close(); return ks; } public static PrivateKey getPrivateKey() { try { BASE64Encoder encoder = new BASE64Encoder(); KeyStore ks = getKeyStore("C:/JavaSoftWare/nginx-1.14.0/conf/haojing.keystore", "123456"); PrivateKey key = (PrivateKey) ks.getKey("haojing", "123456".toCharArray()); String encoded = encoder.encode(key.getEncoded()); System.out.println("-----BEGIN RSA PRIVATE KEY-----"); System.out.println(encoded); System.out.println("-----END RSA PRIVATE KEY-----"); return key; } catch (Exception e) { return null; } } public static void main(String[] args) { getPrivateKey(); } }
5 执行完java程序控制台生成key
复制粘贴 保存文件命名为haojing,后缀为.key
6 到这一步,已经可以将cer证书(若需要crt证书,可以直接把cer证书文件的后缀改为crt即可)配置到nginx中使用。我们这边用的是crt证书,所以改下后缀
7 打开nginx的nginx.conf文件,默认配置都是把https注销的,修改如下
#HTTPS server
server {
listen 443 ssl;
server_name localhost;
ssl_certificate C:/JavaSoftWare/nginx-1.14.0/conf/haojing.crt;
ssl_certificate_key C:/JavaSoftWare/nginx-1.14.0/conf/haojing.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
root html;
index index.html index.htm;
}
}
8 重启nginx,访问 hppts://localhost
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!