1. 证书
在本机Ubuntu/Windows利用OpenSSL
生成自签名的CA root
证书(Ubuntu认crt
格式),
利用该证书签发IdentityServer
和api
项目证书(apsnetcore认pfx
格式)
分别将ca
证书和pfx
挂载到对应的docker
容器中,并让容器信任该ca
证书
如果出现partialchain
问题,可以进入容器apt-get update
安装curlapt-get install curl
执行检查curl -v IP:prot
2. 网络
docker-compose
文件中可以设置networks
,实现网络隔离
同一网络下如何访问:
https://container—name:port
在IdentityServer
中修改IssuerUri
,api
中修改Authority
docker
命令为容器添加网络 docker networks connect network_name container_name
3. MySql
抛出异常 mbind: Operation not permitted
设置docker
环境参数cap_add = SYS_NICE
另外要设置密码 MYSQL_ROOT_PASSWORD=1234
如何设置远程访问,进入容器 docker exec -it mysql_databse /bin/bash
,进入mysqlmysql
,切换数据库use mysql
,修改root的hostupdate user set host ='%' where user='root';
执行flush privileged
远程访问MySQL容器命令: mysql -h IP -u root -p
4. 自签名证书
4.1. Ubuntu
$ openssl req -x509 \
-newkey rsa \
-outform PEM -out tls-rootca.pem \
-keyform PEM -keyout tls-rootca.key.pem \
-days 35600 \
-nodes \
-subj "/C=cn/O=mycomp/OU=mygroup/CN=rootca"
# 查看证书
$ openssl x509 -text -noout -in tls-rootca.pem
$ openssl req -newkey rsa:2048 \
-outform PEM -out tls-intermca.csr \
-keyform PEM -keyout tls-intermca.key.pem \
-nodes \
-extensions v3_ca \
-config /etc/pki/tls/openssl.cnf \
-subj "/C=cn/O=mycomp/OU=mygroup/CN=intermca"
$ openssl x509 \
-req -days 365 \
-in tls-intermca.csr \
-out tls-intermca.pem \
-CA tls-rootca.pem \
-CAkey tls-rootca.key.pem \
-CAcreateserial \
-extensions v3_ca \
-extfile /etc/pki/tls/openssl.cnf
extfile = /usr/lib/ssl/openssl.cnf
具体可参考 使用openssl创建自签名的证书链