У меня есть SSL-сертификат от GoDaddy, который я хотел бы использовать с моей установкой Tomcat. В настоящее время он без проблем используется HTTP-сервером Apache.
Закрытый ключ хранится в / etc / ssl / private, и доступ ограничен. Однако HTTP-сервер Apache не имел проблем с обслуживанием правильного сертификата через SSL.
Когда я пытаюсь указать tomcat на тот же закрытый ключ, ему не удается запустить безопасный протокол, потому что он не может прочитать закрытый ключ. Это отрывок из моего server.xml. Я использую APR:
<Connector SSLCertificateFile="/etc/ssl/certs/mysite.crt"
SSLCertificateKeyFile="/etc/ssl/mysite.key"
SSLEnabled="true" maxThreads="150" port="8443"
protocol="HTTP/1.1" scheme="https" secure="true" sslProtocol="TLSv1" />
Это вызывает ошибку. Конфигурация HTTP Apache выглядит так и работает: SSLCertificateFile /etc/ssl/certs/mysite.crt SSLCertificateKeyFile /etc/ssl/private/mysite.key
Разрешения для каталога / etc / private не были изменены afaik: drwx - x --- 2 root ssl-cert 4096 2011-05-01 11:50 private Внутри: -rw-r - r-- 1 root root 1,7K 30.04.2011 11:00 mysite.key
Теперь мой вопрос: как я могу заставить tomcat использовать тот же файл? Мое временное решение - скопировать ключевой файл в общедоступное место, но я считаю, что это опасно, верно?
Спасибо
В ssl-cert
группа имеет разрешения на прохождение private
, и у всех есть разрешения на чтение для самого ключа, поэтому пользователь, от имени которого работает Tomcat, скорее всего, не является членом ssl-cert
группа.
Добавьте пользователя в группу, чтобы предоставить ему доступ только для чтения к сертификату:
usermod -a -G ssl-cert tomcatusername
И, хотя у вас заблокированы права доступа к каталогу, что должно касаться вас, вы можете изменить разрешения для самого сертификата, чтобы они соответствовали (некоторые службы проверяют доступность для чтения по закрытым ключам):
chown root:ssl-cert /etc/ssl/private/mysite.key
chmod 640 /etc/ssl/private/mysite.key