Loading... # 本地SSL证书创建及HTTPS部署 经过测试,我们的VR及DIY实训系统在 IOS系统下边,如果不启用 HTTPS_SSL访问,将不能使用VR功能。此文章具体实现为 — jdk创建本地SSL证书,IIS证书配置及实现HTTPS访问。 ## 相关文件下载地址: #### 1、JDK下载:[oracle官网](https://www.oracle.com/cn/java/technologies/javase/javase-jdk8-downloads.html) #### 2、URL重写下载:[微软官网](https://www.microsoft.com/zh-cn/download/details.aspx?id=7435) ## 创建SSL证书环境搭建(JDK环境) ### jdk-8u212-windows-x64安装 ### 1、直接右键以管理员身份运行安装,根据安装向导直接下一步完成安装即可。 ### 2、配置JDK; 进入系统高级设置进行环境变量编辑页面(此电脑 > 属性 > 高级系统设置 > 环境变量 )  **添加新的系统变量** * 添加JAVA_HOME变量,变量值就写自己的jdk路径,注意这里需要写绝对路径。 例如:`C:\Program Files\Java\jdk1.8.0_212` \*添加CLASSPATH变量,变量值就写`.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar`注意最前面有个`.`不能落下。   **配置path变量** 这是最重要的一步,也是最容易出错的一步。 在配置path变量的时候将自己安装jdk目录下bin的地址写入,但是**要注意win10或win10以上架构系统的path变量是要用绝对路径的,不能用 \*\***`%JAVA_HOME%`\***\* 这样的相对路径**,否则会识别不了。  **比如:** ```none C:\Program Files\Java\jdk1.8.0_212\bin C:\Program Files\Java\jdk1.8.0_212\jre\bin ``` 这个是我的路径地址 双击path 配置完确定。 这里需要注意的一点就是,就是**在path里面添加的路径都不要写在一个框里用;分割,而是要分开写在单独的框里**。 Cmd打开命令窗口,输入: ``` java -version javac ``` 如下信息则,说明配置成功了。  到这里javaSDK就配置完成了。 ## 使用jdk环境创建SSL证书 **运行cmd 打开windows 终端或者直接使用Windows PowerShell 终端**  首先:现在先新建存放证书的文件夹`keys`。 比如:我存放证书的文件夹位于D盘的keys内`D:/keys`,直接在D盘根目录新建`keys`文件夹即可。 声明:此处创建证书为本地localhost证书,如更换了IP或域名可根据具体IP或域名将localhost进行替换。 ### 一、为服务器端生成证书(100年) 接下来我们要使用下面这些东西来生成我们的CA,执行命令: ``` keytool -genkey -alias ZJ_VR -keypass 123456 -keyalg RSA -keysize 1024 -validity 36500 -keystore d:/keys/ZJ_VR.keystore -storepass 123456 ``` 运行过程输入必要信息,按以下内容填写,最终命令执行成功: ``` PS C:\Windows\system32> keytool -genkey -alias ZJ_VR -keypass 123456 -keyalg RSA -keysize 1024 -validity 36500 -keystore d:/keys/ZJ_VR.keystore -storepass 123456 您的名字与姓氏是什么? [Unknown]: localhost 您的组织单位名称是什么? [Unknown]: XX公司 您的组织名称是什么? [Unknown]: XX公司 您所在的城市或区域名称是什么? [Unknown]: KunMing 您所在的省/市/自治区名称是什么? [Unknown]: YunNan 该单位的双字母国家/地区代码是什么? [Unknown]: CHN CN=localhost, OU=XX公司, O=XX公司, L=KunMing, ST=YunNan, C=CHN是否正确? [否]: Y Warning: JKS 密钥库使用专用格式。建议使用 "keytool -importkeystore -srckeystore d:/keys/ZJ_VR.keystore -destkeystore d:/keys/ZJ_VR.keystore -deststoretype pkcs12" 迁移到行业标准格式 PKCS12。 PS C:\Windows\system32> ``` 这样,在证书就生成在文件夹内了 ``` d:/keys/ZJ_VR.keystore ```  ### 二、为客户端生成证书(重要) **此证书正是我们需要配置到IIS站点的证书** 执行下面命令 ``` keytool -genkey -alias ZJ_VR_client -keypass 123456 -keyalg RSA -keysize 1024 -validity 36500 -storetype PKCS12 -keystore d:/keys/client1.p12 -storepass 123456 ``` 按要求填写内容 ``` PS C:\Windows\system32> keytool -genkey -alias ZJ_VR_client -keypass 123456 -keyalg RSA -keysize 1024 -validity 36500 -storetype PKCS12 -keystore d:/keys/client1.p12 -storepass 123456 您的名字与姓氏是什么? [Unknown]: localhost 您的组织单位名称是什么? [Unknown]: XX公司 您的组织名称是什么? [Unknown]: XX公司 您所在的城市或区域名称是什么? [Unknown]: KunMing 您所在的省/市/自治区名称是什么? [Unknown]: YunNan 该单位的双字母国家/地区代码是什么? [Unknown]: CHN CN=localhost, OU=XX公司, O=XX公司, L=KunMing, ST=YunNan, C=CHN是否正确? [否]: Y PS C:\Windows\system32> ``` ### 三、 让客户端和服务器相互信任 ### 让服务器信任客户端 ``` keytool -export -alias ZJ_VR_client -keystore D:/keys/client1.p12 -storetype PKCS12 -keypass 123456 -file D:/keys/client.cer ``` 按要求输入秘钥口令:123456(秘钥是不显示的) #### 1、客户端证书导出为一个单独的CER文件 ``` PS C:\Windows\system32> keytool -export -alias ZJ_VR_client -keystore D:/keys/client1.p12 -storetype PKCS12 -keypass 123456 -file D:/keys/client.cer 输入密钥库口令: 存储在文件 <D:/keys/client.cer> 中的证书 PS C:\Windows\system32> ``` #### 2、将该文件导入到服务器的证书库,添加为一个信任证书 ``` keytool -import -v -file D:/keys/client.cer -keystore D:/keys/ZJ_VR.keystore -storepass 123456 ``` 执行过程可以看到如下信息 ``` PS C:\Windows\system32> keytool -import -v -file D:/keys/client.cer -keystore D:/keys/ZJ_VR.keystore -storepass 123456 所有者: CN=localhost, OU=XX公司, O=XX公司, L=KunMing, ST=YunNan, C=CHN 发布者: CN=localhost, OU=XX公司, O=XX公司, L=KunMing, ST=YunNan, C=CHN 序列号: 62ceee7 有效期为 Sat Sep 21 11:45:38 CST 2019 至 Sun Sep 20 11:45:38 CST 2020 证书指纹: MD5: 8B:E2:6C:F6:20:60:51:0B:0C:17:48:EB:5E:8A:E5:F0 SHA1: B3:E6:B2:A5:89:0A:5D:EF:97:F8:DF:9D:B6:36:BA:F6:72:E9:8E:AC SHA256: 70:AD:3D:66:5E:FA:50:A1:6C:0C:39:3B:39:4F:62:53:6A:0E:4B:90:BA:89:59:99:39:D6:D4:D0:9B:E1:C6:01 签名算法名称: SHA256withRSA 主体公共密钥算法: 1024 位 RSA 密钥 版本: 3 扩展: #1: ObjectId: 2.5.29.14 Criticality=false SubjectKeyIdentifier [ KeyIdentifier [ 0000: B9 7D 9A A8 FF 82 85 DA 4C 59 8B AA B4 87 A0 37 ........LY.....7 0010: 48 51 B3 18 HQ.. ] ] 是否信任此证书? [否]: Y 证书已添加到密钥库中 [正在存储D:/keys/ZJ_VR.keystore] Warning: JKS 密钥库使用专用格式。建议使用 "keytool -importkeystore -srckeystore D:/keys/ZJ_VR.keystore -destkeystore D:/keys/ZJ_VR.keystore -deststoretype pkcs12" 迁移到行业标准格式 PKCS12。 PS C:\Windows\system32> ``` ### 让客户端信任服务器 #### 1、服务器证书导出为一个单独的CER文件 ``` keytool -keystore D:/keys/ZJ_VR.keystore -export -alias ZJ_VR -file D:/keys/server.cer ``` 执行过程如下所示,需要输入密码 ``` PS C:\Windows\system32> keytool -keystore D:/keys/ZJ_VR.keystore -export -alias ZJ_VR -file D:/keys/server.cer 输入密钥库口令: 存储在文件 <D:/keys/server.cer> 中的证书 Warning: JKS 密钥库使用专用格式。建议使用 "keytool -importkeystore -srckeystore D:/keys/ZJ_VR.keystore -destkeystore D:/keys/ZJ_VR.keystore -deststoretype pkcs12" 迁移到行业标准格式 PKCS12。 PS C:\Windows\system32> ``` 双击server.cer文件,按照提示安装证书,将证书加入到“受信任的根证书颁发机构” 如图,我们执行完上述过程,可以看到我们的目录下有如下文件  双击server.cer,一路next,完成安装。 **说明:**`client1.p12`** 服务器部署证书;**`server.cer`** 为客户端信任服务器证书(可在客户端进行安装\<选装>)。** ## 四、WEB VR项目IIS配置 **将client1.p12拷贝至WEB VR项目服务器。** #### 1、打开IIS,如图双击“服务器证书”。  #### 2、点击导入证书  选择证书输入秘钥并确定。  如图,我们创建的证书就添加进来了。  #### 3、如图:选择站点,右键 编辑绑定。  点击添加按钮  选择 HTTPS  选择证书并确定  这样证书就添加成功了  关闭窗口。 ## 五、安装URL重写模块 报错:  处理:打开注册表编辑器    原值为10,十进制改成9,然后再安装就可安装了。安装完成,改回注册表值:10。  安装完成后,可看到 URL重写。 ## 六、配置HTTP强制跳转HTTPS 两种方法,方法一:是直接在IIS一步步添加配置;方法二:是直接在配置文件中添加配置代码。 #### 1、这里推荐使用方法二(我这里已经配置好了,直接 copy 代码) 打开IIS配置文件 `Web.config`  #### 2、添加如下代码到配置文件中 ```csharp <system.webServer> <rewrite> <rules> <rule name="Redirect to https" stopProcessing="true"> <match url="(.*)" /> <conditions> <add input="{HTTPS}" pattern="^OFF$" /> <add input="{HTTPS_HOST}" pattern="^(localhost)" negate="true" /> </conditions> <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="SeeOther" /> </rule> </rules> </rewrite> </system.webServer> ```  #### 3、打开浏览器,访问站点 浏览器可能会拦截,提示不安全,这是由于我们的证书是模拟配置的,并不是由域名厂商直接颁发的。这个提示不用管,直接点击 继续前往,网站就能以 HTTPS打开访问了。   **到此,所有配置完成。** 最后修改:2020 年 10 月 20 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 0 如果觉得我的文章对你有用,请随意赞赏