启动测试应用时, 有时需要自己配置证书签名:
1 使用系统自带openssl
openssl req \
> -x509 \
> -nodes \
> -days 365 \
> -newkey rsa:2048 \
> -keyout example.key \
> -out example.crt
各参数含义:
- req:处理证书签署请求。
- -x509:生成自签名证书。
- -nodes:跳过为证书设置密码的阶段,这样 Nginx 才可以直接打开证书。
- -days 365:证书有效期为一年。
- -newkey rsa:2048:生成一个新的私钥,采用的算法是2048位的 RSA。
- -keyout:新生成的私钥文件为当前目录下的example.key。
- -out:新生成的证书文件为当前目录下的example.crt。
执行过程中会有一些输入, 着重看下Common Name (e.g. server FQDN or YOUR name) []:127.0.0.1的输入,
执行完成后当前目录会生成一个自签名key和 crt文件
2 配置nginx
server {
listen 443 ssl http2;
server_name localhost;
ssl on;
ssl_certificate /etc/nginx/certs/example.crt;# 生成crt路径
ssl_certificate_key /etc/nginx/certs/example.key; # 生成key路径
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}
3 启动端口映射(443端口)
docker container run \
--rm \
--name mynginx \
--volume "$PWD/html":/usr/share/nginx/html \
--volume "$PWD/conf":/etc/nginx \
-p 127.0.0.2:8080:80 \
-p 127.0.0.2:8081:443 \
-d \
nginx
4 访问应用, 如提示证书不安全, 选择继续访问即可;
标签:https,ssl,证书,nginx,key,crt,docker,example From: https://www.cnblogs.com/gatling/p/18029074