我想使用自签名证书为我对Denodo的所有传入Web请求启用https。我该怎么做呢?

(Denodo安装了嵌入式JRE和Tomcat)

(我正在发布此问题,并包括答案,以希望其他人发现它有用)

最佳答案

使用自签名证书启用HTTPS包括以下几个步骤:


创建密钥对并将其添加到密钥库
从密钥库中的密钥对中提取证书
将您的证书添加到嵌入式JRE cacerts文件
配置Denodo Tomcat以使用您的密钥库和默认的cacerts文件


注意:如果要使用自己的信任库(而不是内置的cacerts),则可以这样做,您的步骤将稍有不同,但是总体思路是相同的。

注意2:如果您要使用签名证书,则适用相同的规则...您的步骤将稍有不同,但总体思路是相同的...(而不是将证书导入到cacerts文件中,需要生成证书签名请求并获得签名)。

步骤1:创建密钥对并将其添加到新的密钥库

在您的denodo服务器上运行以下命令:

$ /lclapps/denodo/jre/bin/keytool -genkey -alias nvdrdenodo2 -keyalg RSA -keystore

~/command_line.keystore`enter code here`
Enter keystore password:
Re-enter new password:
What is your first and last name?
  [Unknown]:  first_last
What is the name of your organizational unit?
  [Unknown]:  Technology
What is the name of your organization?
  [Unknown]:  My OU
What is the name of your City or Locality?
  [Unknown]:  San Francisco
What is the name of your State or Province?
  [Unknown]:  CA
What is the two-letter country code for this unit?
  [Unknown]:  US
Is CN=first_last, OU=Technology, O=My OU, L=San Francisco, ST=CA, C=US correct?
  [no]:  yes
Enter key password for <nvdrdenodo2>
        (RETURN if same as keystore password):


您必须确保密钥对密码与密钥库密码相同。记住密码:-)

步骤2:将密钥提取为PEM格式的证书

运行以下命令,并确保包括您在步骤1中使用的密码。

/lclapps/denodo/jre/bin/keytool -exportcert -alias nvdrdenodo2 -keystore ~/command_line.keystore -storepass MyPassword -rfc -file ~/nvdrdenodo2.cer


步骤3:将.cer文件导入到嵌入式JRE的cacerts文件中

/lclapps/denodo/jre/bin/keytool -import -alias nvdrdenodo2 -keystore /lclapps/denodo/jre/lib/security/cacerts -file ~/nvdrdenodo2.cer
Enter keystore password:
Owner: CN=first_last, OU=Technology, O=My OU, L=San Francisco, ST=CA, C=US
Issuer: CN=first_last, OU=Technology, O=My OU, L=San Francisco, ST=CA, C=US
Serial number: 54341d2a
Valid from: Tue Oct 07 11:04:42 MDT 2014 until: Mon Jan 05 10:04:42 MST 2015
Certificate fingerprints:
         MD5:  3A:9F:37:16:3F:17:9B:BF:3A:95:CE:2C:ED:8A:FF:22
         SHA1: 6A:9E:75:68:7A:33:2C:F9:E3:11:01:CC:2E:7B:00:4C:B8:D2:E6:AF
         Signature algorithm name: SHA1withRSA
         Version: 3
Trust this certificate? [no]:  yes
Certificate was added to keystore
Certificate stored in file </home/user_account/nvdrdenodo2.cer>


步骤4:更新$ DENODO_HOME / resources / apache-tomcat / conf / tomcat.properties文件

现在,我们将tomcat配置为使用我们的密钥库,并注释掉信任库行,因为默认情况下它将使用嵌入式JRE cacerts文件。

vi /lclapps/denodo/resources/apache-tomcat/conf/tomcat.properties

com.denodo.tomcat.home=/lclapps/denodo-5.0/resources/apache-tomcat
com.denodo.tomcat.http.port=9090
com.denodo.tomcat.shutdown.port=9099
com.denodo.tomcat.jmx.port=9098
com.denodo.tomcat.engine.name=DenodoPlatform-5.0
com.denodo.tomcat.export.dirname=export
com.denodo.tomcat.http.log=true
com.denodo.tomcat.https.enable=true
com.denodo.tomcat.https.port=9443
com.denodo.security.ssl.enabled=true
com.denodo.security.ssl.keyStore=/home/user_account/command_line.keystore
com.denodo.security.ssl.keyStorePassword=password
#com.denodo.security.ssl.trustStore=
#com.denodo.security.ssl.trustStorePassword=
java.env.DENODO_OPTS_START=-Xmx2056m -XX\:MaxPermSize\=256m


重新启动并测试

重新启动Denodo,然后转到https://yourserver:9443/denodo-restfulws/admin并查看它是否有效(或转到已发布的Web服务的任何URL)。您应该得到一个证书错误:



添加例外,您现在可以使用自己的证书通过HTTPS访问Denodo Tomcat!

09-12 23:28