当前位置: 首页 > news >正文

网站做编辑温州网论坛

网站做编辑,温州网论坛,网站大全网址大全,网站搭建软件d配置生成CA证书 总示意图#xff1a; (1)#xff0c;通过openssl创建CA证书 第一步#xff1a;创建一个秘钥#xff0c;这个便是CA证书的根本#xff0c;之后所有的东西都来自这个秘钥 # 通过rsa算法生成2048位长度的秘钥 openssl genrsa -out myCA.key 2048 第二步#… 配置生成CA证书 总示意图 (1)通过openssl创建CA证书 第一步创建一个秘钥这个便是CA证书的根本之后所有的东西都来自这个秘钥 # 通过rsa算法生成2048位长度的秘钥 openssl genrsa -out myCA.key 2048 第二步是通过秘钥加密机构信息形成公钥 # 公钥包含了机构信息在输入下面的指令之后会有一系列的信息输入 # 这些信息便是机构信息公司名称地址什么的 # 这里还有一个过期信息CA证书也会过期openssl默认是一个月这里设置为10年 openssl req -new -x509 -key myCA.key -out myCA.cer -days 3650 执行命令过程如下图所示 参数名称 参数值 Country Name 国家代码比如中国就是CN State or Province Name 省名称 Locality Name 城市名称 Organization Name 机构名称 Organizational Unit Name 机构单位名称 Common Name 重点参数授权给什么因为机构是根节点所以是授权给自己 Email Address 邮件地址 (2)创建服务器证书 在得到CA证书之后需要通过 openssl工具对证书进行转换得到公钥 .crt文件和密钥 .key文件无论CA证书是怎么来的到这里之后就没有任何区别了服务器证书的制作流程相较CA证书要复杂一点点。 第一步通过openssl工具创建服务器的秘钥 # 通过RSA算法生成长度2048位的秘钥 openssl genrsa -out server.key 2048 第二步创建签名请求 首先 https证书的公钥不同于自定义情况下的加密证书这里需要安装浏览器标准进行配置首先 openssl默认的证书版本是V1V1在支持 https时部分浏览器依旧会认为不安全所以需要使用V3版本同时 openssl即便是使用V3版本依旧没有附带V3的 subjectAltName字段数据这里是证书对应的IP地址或者域名可以用通配符。但是这些东西命令行没法指定所以需要配置文件我这里准备了一个 创建 openssl.cnf 文件并添加如下内容 tsa_policy2 1.2.3.4.5.6 tsa_policy3 1.2.3.4.5.7 [ ca ] default_ca CA_default # The default ca section [ CA_default ] dir ./demoCA # Where everything is kept certs $dir/certs # Where the issued certs are kept crl_dir $dir/crl # Where the issued crl are kept database $dir/index.txt # database index file. new_certs_dir $dir/newcerts # default place for new certs. certificate $dir/cacert.pem # The CA certificate serial $dir/serial # The current serial number crlnumber $dir/crlnumber # the current crl number crl $dir/crl.pem # The current CRL private_key $dir/private/cakey.pem# The private key RANDFILE $dir/private/.rand # private random number file x509_extensions usr_cert # The extentions to add to the cert name_opt ca_default # Subject Name options cert_opt ca_default # Certificate field options default_days 365 # how long to certify for default_crl_days 30 # how long before next CRL default_md default # use public key default MD preserve no # keep passed DN ordering policy policy_match [ policy_match ] countryName match stateOrProvinceName match organizationName match organizationalUnitName optional commonName supplied emailAddress optional [ policy_anything ] countryName optional stateOrProvinceName optional localityName optional organizationName optional organizationalUnitName optional commonName supplied emailAddress optional [ req ] default_bits 1024 default_keyfile privkey.pem distinguished_name req_distinguished_name attributes req_attributes x509_extensions v3_ca # The extentions to add to the self signed cert string_mask utf8only req_extensions v3_req # The extensions to add to a certificate request [ req_distinguished_name ] countryName Country Name (2 letter code) countryName_default CN countryName_min 2 countryName_max 2 stateOrProvinceName State or Province Name (full name) stateOrProvinceName_default BeiJing localityName Locality Name (eg, city) 0.organizationName Organization Name (eg, company) 0.organizationName_default myca organizationalUnitName Organizational Unit Name (eg, section) commonName Common Name (e.g. server FQDN or YOUR name) commonName_max 64 emailAddress Email Address emailAddress_max 64 [ req_attributes ] challengePassword A challenge password challengePassword_min 4 challengePassword_max 20 unstructuredName An optional company name [ usr_cert ] basicConstraintsCA:FALSE nsCertType client, email, objsign keyUsage nonRepudiation, digitalSignature, keyEncipherment nsComment OpenSSL Generated Certificate subjectKeyIdentifierhash authorityKeyIdentifierkeyid,issuer [ svr_cert ] basicConstraintsCA:FALSE nsCertType server keyUsage nonRepudiation, digitalSignature, keyEncipherment, dataEncipherment, keyAgreement subjectKeyIdentifierhash authorityKeyIdentifierkeyid,issuer extendedKeyUsage serverAuth,clientAuth [ v3_req ] subjectAltName alt_names # 这里是重点需要将里面配置为最终服务端需要的域名或者IP # 这里可以写多个能够自行添加DNS.X XXXXXX, 支持通配符 [ alt_names ] DNS.1 www.k8s-harbor.com DNS.2 k8s-harbor.com [ v3_ca ] subjectKeyIdentifierhash authorityKeyIdentifierkeyid:always,issuer basicConstraints CA:true [ crl_ext ] authorityKeyIdentifierkeyid:always [ proxy_cert_ext ] basicConstraintsCA:FALSE nsComment OpenSSL Generated Certificate subjectKeyIdentifierhash authorityKeyIdentifierkeyid,issuer proxyCertInfocritical,language:id-ppl-anyLanguage,pathlen:3,policy:foo [ tsa ] default_tsa tsa_config1 # the default TSA section [ tsa_config1 ] dir ./demoCA # TSA root directory serial $dir/tsaserial # The current serial number (mandatory) crypto_device builtin # OpenSSL engine to use for signing signer_cert $dir/tsacert.pem # The TSA signing certificate# (optional) certs $dir/cacert.pem # Certificate chain to include in reply# (optional) signer_key $dir/private/tsakey.pem # The TSA private key (optional) default_policy tsa_policy1 # Policy if request did not specify it# (optional) other_policies tsa_policy2, tsa_policy3 # acceptable policies (optional) digests md5, sha1 # Acceptable message digests (mandatory) accuracy secs:1, millisecs:500, microsecs:100 # (optional) clock_precision_digits 0 # number of digits after dot. (optional) ordering yes # Is ordering defined for timestamps?# (optional, default: no) tsa_name yes # Must the TSA name be included in the reply?# (optional, default: no) ess_cert_id_chain no # Must the ESS cert id chain be included?# (optional, default: no) 将上面的配置内容保存为openssl.cnf放到生成的服务器证书文件的目录下注意修改alt_names里面的域名或者IP为最终部署需要的地址支持通配符然后执行创建签名申请文件即可执行运行 注意在 openssl.conf中一定要加有关的域名然后生成对应服务器的证书的时候也使用域名就可以实现正常的访问了。 # 和创建CA时一样这里需要输入一堆服务器信息输入项也是相同的。 # 不过在输入Common NameCN最好直接输入服务器的IP地址或者域名。 openssl req -config openssl.cnf -new -out server.req -key server.key 执行命令过程如下图所示 第三步通过CA机构证书对服务器证书进行签名认证 这里服务器的公钥是由CA证书的密钥配对加密来的。 # 这里本质上就是将签名请求文件进行签名最终得到服务器的公钥 openssl x509 -req \ -extfile openssl.cnf \ -extensions v3_req \ -CAkey myCA.key \ -CA myCA.cer \ -days 3650 \ -in server.req \ -out server.cer \ -CAcreateserial -CAserial serial 将cer证书转成crt证书 命令如下: openssl x509 -inform PEM -in server.cer -out server.crt 将crt证书转成cert证书 命令如下: openssl x509 -inform PEM -in server.crt -out server.cert cer证书转换为jks证书: # 方法一 keytool -import \ -alias certificate_alias \ -file server.cer \ -keystore server.jks# 方法二 # 1. 将cer证书转换为PKCS12格式的证书 keytool -importcert \ -file server.cer \ -keystore server.p12 \ -storetype PKCS12# 2. 将PKCS12格式的证书转换为JKS格式的证书 keytool -importkeystore \ -destkeystore server.jks \ -srckeystore server.p12 \ -srcstoretype pkcs12 \ -alias alias_name # 无 alias 则不加此参数为 harbor 和 docker 颁发证书 (1) 将服务端证书拷贝至 /data/cert/目录下 mkdir -p /data/cert/ cp server.crt /data/cert/ cp server.key /data/cert/ (2) 将 server.crt 文件拷贝到docker的证书目录下注意替换为自己的域名 mkdir -p /etc/docker/certs.d/www.k8s-harbor.com/ cp server.crt /etc/docker/certs.d/www.k8s-harbor.com/ 这里需要注意的是如果nginx中对https没有使用默认的443端口修改为其他端口了则此时的需要创建的目录为/etc/docker/certs.d/yourdomain.com:port, 或者 /etc/docker/certs.d/harbor_IP:port (3) 重启docker systemctl restart docker 修改 harbor.yml 配置文件 修改harbor.yml配置 (位于/usr/local/harbor)开启 https 配置。 如下前面部署 http 模式的时候将https的部分注释了这里要将 https 的配置放开注释而且修改证书的文件路径如下所示 # Configuration file of Harbor# The IP address or hostname to access admin UI and registry service. # DO NOT use localhost or 127.0.0.1, because Harbor needs to be accessed by external clients. hostname: harbor.ninexch.com #更改为本地解析IP的域名# http related config http:# port for http, default is 80. If https enabled, this port will redirect to https portport: 80 # https related config https: #开启Https# https port for harbor, default is 443port: 443 #开启端口# The path of cert and key files for nginxcertificate: /data/cert/server.crt #指定SSL公有证书private_key: /data/cert/server.key #指定SSL私有证书 然后执行如下命令更新 harbor # 重新安装(harbor相关容器会被删除,数据正常不会丢失) ./install.sh# 重新编译配置文件(数据会丢失) -- no use ./prepare docker-compose down -v docker-compose up -d Nginx 配置 https 修改 nginx.conf 配置增加监听 443 端口的跳转到harbor的8443端口此外在这里需要指定证书文件的路径 server {listen 443 ssl;server_name www.k8s-harbor.com;ssl_certificate /data/cert/server.crt;ssl_certificate_key /data/cert/server.key;ssl_protocols TLSv1 TLSv1.1 TLSv1.2;ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;ssl_session_cache shared:SSL:1m;ssl_session_timeout 5m;location / {client_max_body_size 1024M;client_body_buffer_size 1024M;proxy_redirect off;proxy_pass https://172.22.27.162:8443;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;} } 然后将 http 的跳转到 https server {listen 80;server_name www.k8s-harbor.com;return 301 https://www.k8s-harbor.com$request_uri; } 然后重新加载配置文件 nginx -s reload 此时在浏览器就可以 通过 http://www.k8s-harbor.com 和 https://www.k8s-harbor.com 访问当使用 http://www.k8s-harbor.com 时会发现自动跳转到 https://www.k8s-harbor.com Nginx 配置可能遇到额问题 注意如果出现类似如下错误 nginx: [emerg] unknown directive ssl_certificate in /usr/local/nginx/conf/nginx.conf 或者类似如下错误; error: SSL modules require the OpenSSL library. 说明 nginx 没有安装ssl此时进入nginx的源码目录执行如下命令 ./configure \ --prefix/usr/local/nginx \ --with-http_stub_status_module \ --with-http_ssl_module \ --with-openssl/usr/local/src/openssl-1.1.1o 其中 /usr/local/src/openssl-1.1.1o 目录 为openssl 源码包的解压目录 然后使用 make 编译注意不要使用 make install否则会覆盖 make 然后备份原有的nginx 命令并将新编译的nginx拷贝的nginx命令所在的目录 # 将原有的命令重命名备份 mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bark# 将新编译的nginx命令拷贝到nginx命令的目录下 cp objs/nginx /usr/local/nginx/sbin/ 然后执行 nginx -V 如下出现 —with-http_ssl_module 表示安装成功 [rootredrose2100 nginx-1.21.4]# nginx -V nginx version: nginx/1.21.4 built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) built with OpenSSL 1.1.1o 3 May 2022 TLS SNI support enabled configure arguments: --prefix/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-openssl/usr/local/src/openssl-1.1.1o [rootredrose2100 nginx-1.21.4]# 然后再次执行如下命令重新加载nginx配置 nginx -s reload
http://www.zqtcl.cn/news/275742/

相关文章:

  • .net做网站用什么技术网站优化排名方案
  • 电商网站备案流程网站移动端优化的重点有哪些
  • 数据需求 网站建设做qq空间的网站
  • 微信网站游戏网络规划设计师可以挂证吗
  • 有个做特价的购物网站网站建设与维护题库及答案
  • 长沙网站优化价格创意设计师个人网站
  • 滨河网站建设南京免费发布信息网站
  • 蓝色系列的网站邓砚谷电子商务网站建设
  • 德阳市住房和城乡建设局网站首页一个服务器可以建多少个网站
  • 建一个电商网站多少钱一起做网店货源app
  • 做网站用lunx代理记账 营销型网站
  • 凡客做网站怎么样WordPress分类目录 前100篇
  • 腾讯wordpress 建站教程本地的上海网站建设公司
  • 深圳市南山区住房和建设局官方网站上海专业网站建设公司站霸网络
  • 建网站的8个详细步骤网站集约化建设讲话
  • 建设局哪个网站查证南京注册公司多少钱
  • 免费的网站制作郑州中森网站建设
  • 网站关键词搜不到了濮阳网络教育
  • 推荐股票的好网站如何做好网站宣传
  • 免费网站模板网大型网络游戏
  • 网站开发语言数据库有几种广东省建设厅官网查询
  • 建新建设集团有限公司网站土巴兔装修公司电话
  • 百度网站审核期时间wordpress如何实现收费会员制
  • delphi 2010 网站开发wordpress 变装小说
  • asp.net电子商务网站前台模板企业所得税优惠政策2021年小微企业
  • 成都网站建设 lkcms深圳做网站哪个公司最好
  • 网站降权处理关于网站建设心得体会
  • 互联网站点与wordpress集成软件
  • 网站页面图片布局如何设计最新热点新闻事件
  • 学网站建设难四会市城乡规划建设局网站