openssl.cnf文件的正确位置

时间:2014-01-31 10:02:20

标签: openssl

我有一个Ubuntu系统,我已经安装了OpenSSL。现在我想对配置文件进行更改。我搜索了我的文件夹,找到了配置文件的以下位置。哪个是我应该用来进行更改的主要/正确的?我需要在这里添加引擎。任何帮助,将不胜感激。以下是地点:

/usr/local/ssl/openssl.cnf
/usr/lib/ssl/openssl.cnf
/etc/ssl/openssl.cnf

5 个答案:

答案 0 :(得分:30)

  

/usr/local/ssl/openssl.cnf

这是本地安装。您使用prefix./config --prefix=/usr/local/ssl配置的默认./config --openssldir=/usr/local/ssl下载并构建了OpenSSL。

您将使用如果/usr/local/ssl/bin中使用OpenSSL。也就是说,发出时会使用/usr/local/ssl/openssl.cnf

/usr/local/ssl/bin/openssl s_client -connect localhost:443 -tls1 -servername localhost

  

/usr/lib/ssl/openssl.cnf

这是Ubuntu为他们提供的OpenSSL放置openssl.cnf的地方。

您将使用如果/usr/bin中使用OpenSSL。也就是说,发出时会使用/usr/lib/ssl/openssl.cnf

openssl s_client -connect localhost:443 -tls1 -servername localhost

  

/etc/ssl/openssl.cnf文件

我不知道何时使用它。 /etc/ssl中的内容通常是证书和私钥,有时包含openssl.cnf的副本。但我从来没有见过它用于任何事情。


  

我应该使用哪个主要/正确的进行更改?

根据它的声音,您应该将引擎添加到/usr/lib/ssl/openssl.cnf。这确保了大多数“现成”装备将使用新发动机。

执行此操作后,请将其添加到/usr/local/ssl/openssl.cnf,因为复制/粘贴很简单。


以下是如何查看哪个openssl.cnf目录与OpenSSL安装相关联。图书馆和程序会在openssl.cnf中查找OPENSSLDIROPENSSLDIR是一个配置选项,其设置为--openssldir

我在MacBook上有3种不同的OpenSSL(Apple,MacPort和我建的):

# Apple    
$ /usr/bin/openssl version -a | grep OPENSSLDIR
OPENSSLDIR: "/System/Library/OpenSSL"

# MacPorts
$ /opt/local/bin/openssl version -a | grep OPENSSLDIR
OPENSSLDIR: "/opt/local/etc/openssl"

# My build of OpenSSL
$ openssl version -a | grep OPENSSLDIR
OPENSSLDIR: "/usr/local/ssl/darwin"

  

我有一个Ubuntu系统,我已经安装了openssl。

只是自行车脱落,但要小心Ubuntu的OpenSSL版本。它禁用TLSv1.1和TLSv1.2,因此您只能拥有能够使用旧密码套件的客户端;并且您将无法使用更新的密码,如AES / CTR(替换RC4)和椭圆曲线齿轮(如ECDHE_ECDSA_*ECDHE_RSA_*)。请参阅Launchpad中的Ubuntu 12.04 LTS: OpenSSL downlevel version is 1.0.0, and does not support TLS 1.2

编辑:Ubuntu最近启用了TLS 1.1和TLS 1.2。请参阅错误报告中的Comment 17

答案 1 :(得分:18)

RHEL:/etc/pki/tls/openssl.cnf

答案 2 :(得分:6)

  

/usr/local/ssl/openssl.cnf

的软链接
  

/etc/ssl/openssl.cnf文件

您可以在/ usr / local / ssl /目录中使用长列表(ls -l)查看

  

lrwxrwxrwx 1 root root 20 Mar 1 05:15 openssl.cnf - >   /etc/ssl/openssl.cnf文件

答案 3 :(得分:1)

您可以运行以下命令来获取 openssl.cnf 文件的位置:

% openssl version -d

在我的电脑上,结果是:

% openssl version -d
OPENSSLDIR: "/private/etc/ssl"

openssl.cnf 文件的路径:

% echo "$(openssl version -d | sed 's/.*"\(.*\)"/\1/g')/openssl.cnf"
/private/etc/ssl/openssl.cnf

答案 4 :(得分:-1)

在CentOS 6上,我有两个openssl.cnf:

/openvpn/easy-rsa/
/pki/tls/