一、生成HTTPS证书
查看是否安装了openssl证书
openssl version -a
生成根证书的私钥
openssl genrsa -des3 -out server.key 2048
genrsa:产生rsa密钥
-out:输出文件名
2048:密钥的长度位数,默认为512
最后生成server.key文件
去除访问server.key每次输入密码的步骤
openssl rsa -in server.key -out server.key
生成服务器证书的申请文件
openssl req -new -key server.key -out server.csr
主要填写内容如下
Country Name (2 letter code) [AU]:CN 国家
State or Province Name (full name) [Some-State]:SH 省
Locality Name (eg, city) []:SH 市
Organization Name (eg, company) [Internet Widgits Pty Ltd]:SZZ 组织
Organizational Unit Name (eg, section) []:SZZ 单位
Common Name (e.g. server FQDN or YOUR name) []:SZZ 个人
Email Address []:szz@13.com 邮箱
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: 密码
An optional company name []: 公司(可选)
最后生成server.csr文件
生成根证书
openssl req -new -x509 -key server.key -out ca.crt -days 3650
-new:表示生成一个新证书签署请求
-x509:专用于CA生成自签证书,如果不是自签证书则不需要此项
-key:用到的私钥文件
-out:证书的保存路径
-days:证书的有效期限,单位是天
最后生成ca.crt文件
生成服务器证书
openssl x509 -req -days 3650 -in server.csr -CA ca.crt -CAkey server.key -CAcreateserial -out server.crt
最后生成ca.srl,server.crt两个文件,此时一共生成了server.key,server.csr,ca.srl,ca.crt,server.crt 5个文件。
用docker方式安装nginx,监听80 和 443端口
docker run -d --restart=always --name mtgHttpsNginx_2 --privileged=true -p 80:80 -p 443:443 -v /home/docker/nginx2/conf/nginx.conf:/etc/nginx/nginx.conf -v /home/docker/nginx2/log:/var/log/nginx -v /home/commander/html:/home/commander/html -v /home/commander/upload:/home/commander/upload -v /home/cloud-web:/home/cloud-web -v /home/store-web:/home/store-web nginx
查看nginx的容器id
docker ps
先关闭nginx
docker stop {容器id}
将刚刚生成的证书copy到容器中
docker cp server.key {容器ID}:/etc/nginx/ docker cp server.crt {容器ID}:/etc/nginx/
修改nginx配置文件
#user nobody; user root; worker_processes 1;
#error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info;
#pidlogs/nginx.pid;
events { worker_connections 1024; }
http { include mime.types; default_type application/octet-stream; client_max_body_size 1024m;
sendfile on;
keepalive_timeout 65;
gzip on;
server {
listen 80;
listen 443 ssl
server_name localhost;
ssl_certificate /etc/nginx/server.crt;
ssl_certificate_key /etc/nginx/server.key;
location / {
root /usr/share/nginx/html;
index index.html;
}
location /file {
alias /xxx/xxx/upload;
index index.html index.htm;
}
location /gate/ {
proxy_pass http://IP地址:端口/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
启动nginx
docker start {容器ID}
用 https地址访问下是否可以访问,出现以下地址即安装成功了
以上内容参考: www.cnblogs.com/strongmore/…