这种生成证书的方式,最关键的在于有subjectAltName这个值,Chrome浏览器主要识别这个,因此在生成证书的时候要区分自己环境的情况,以下分为三种类型
友情链接:通过ip配置ArcGIS Enterprise及创建证书全过程--以windows10安装ArcGIS Enterprise10.7.1为例
OpenSSL创建的自签名证书在chrome端无法信任之(II)
统一证书
目录
1、安装OpenSSL (Linux无需此步骤)
1.1、下载windows上适用的openssl
1.2、设置环境变量
2、生成证书
2.1 Windows版
2.2 Linux版同理
2.3 关键信息
2.3.1 单机环境,使用域名配置
2.3.2 分布式部署,使用域名配置
2.3.3 单机配置,使用IP配置
3、完整代码
4、统一证书(服务器端导入pfx格式证书)
4.1 替换ArcGIS Portal使用的证书
4.1.1导入现有证书
4.1.2 替换证书
4.2 替换ArcGIS Server使用的证书
4.2.1 导入现有证书
4.2.2 替换证书
4.3 替换IIS或tomcat里的证书(视情况而定)
4.4 在客户端浏览器中导入证书cer格式(必须)
下载地址,因我的电脑是64位的,所以我选择下载OpenSSL 1.0.2t Light(64-bit)
按照默认位置安装即可,无需多余设置
以管理员身份运行cmd,生成证书
我的电脑只有一个盘,所以我先cd到了c盘,然后运行命令,换言之,在哪里运行命令,哪里就是输出路径
完整过程如下图所示
echo "subjectAltName=DNS:zhangs.esrichina.com.com" > cert_extensions
echo "subjectAltName=DNS.1:zhangs.esrichina.com.com,DNS.2:p1.esrichina.com.com,DNS.3:p2.esrichina.com.com,DNS.4:s1.esrichina.com.com,DNS.5:s2.esrichina.com.com,DNS.6:t1.esrichina.com.com" > cert_extensions
echo "subjectAltName=DNS:zhangs.esrichina.com.com,IP:192.168.100.83" > cert_extensions
其中echo这句的写法参照上面三种情况
c:\>openssl genrsa -out 136zhengshu.key 2048
Generating RSA private key, 2048 bit long modulus
................................................+++++
.....+++++
e is 65537 (0x10001)
c:\>openssl req -new -key 136zhengshu.key -out 136zhengshu.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:CN
State or Province Name (full name) [Some-State]:Beijing
Locality Name (eg, city) []:Beijing
Organization Name (eg, company) [Internet Widgits Pty Ltd]:EsriChina
Organizational Unit Name (eg, section) []:Esrichina
Common Name (e.g. server FQDN or YOUR name) []:192.168.100.136
Email Address []:[email protected]
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:1234
An optional company name []:esrichina
c:\>echo subjectAltName=IP:192.168.100.136,DNS:win136.esrichina.com >cert_extensions
c:\>openssl x509 -req -sha256 -in 136zhengshu.csr -signkey 136zhengshu.key -extfile cert_extensions -out 136zhengshu.crt -days 3650
Signature ok
subject=/C=CN/ST=Beijing/L=Beijing/O=EsriChina/OU=Esrichina/CN=192.168.100.136/[email protected]
Getting Private key
c:\>openssl pkcs12 -inkey 136zhengshu.key -in 136zhengshu.crt -export -out 136zhengshu.pfx
Enter Export Password:
Verifying - Enter Export Password:
c:\>
生成的文件如下:
注:server和portal导入证书后需要重启系统服务
登陆门户的管理员目录(https://机器域名/arcgis/portaladmin/),单击Security > SSLCertificates > Import Existing Server Certificate,选择1步骤生成的证书,如图:
登陆门户的管理员目录(https://机器域名/arcgis/portaladmin/),单击Home > Security > SSLCertificates > Update,在Web server SSL Certificate 参数中填写上一步骤导入的证书名称,如图:
登陆站点的管理员目录(https://机器域名:6443/arcgis/admin/),单击machine-> 机器名称 -> sslcertificates-> importExistingServerCertificate,选择1步骤生成的证书,如图:
登陆站点的管理员目录(https://机器域名:6443/arcgis/admin/),单击machine-> 机器名称 -> edit,在Web server SSL Certificate 参数中填写上一步骤导入的证书名称,如图:
统一证书完成之后,可以在机器上双击1步骤生成的证书进行安装,或者在客户机访问门户的时候,查看证书并将证书导出进行安装,在安装时选择受信任的根证书颁发机构。
一般情况下不需要更换IIS或者是tomcat里的证书,两种情况除外:
1、原有证书过期了
2、虽然都是同一台机器,但是原来的证书颁发给域名,现在证书颁发给ip,或者反过来,
那么如何确定自己在IIS或tomcat里的证书到底颁发给谁呢?
可通过如下方式查看
如果访问的网站,地址栏里的域名或ip,和证书里的一样,那么就不需要更换,如果不一样,则需要更换
更换步骤,以IIS为例
先将前面生成的证书导入到IIS的服务器证书里,例如名称为zhengshutest
点击编辑绑定后,出现下图所示的界面,双击下面的https那行,编辑,将最下面的证书换成前面导入的zhengshutest,保存即可
以Chrome浏览器为例