Ответ @Gabe Martin-Dempesy мне помогает. И я написал небольшой сценарий, связанный с ним.
Установить сертификат с хоста:
> sudo ./java-cert-importer.sh example.com
Удалить уже установленный сертификат.
> sudo ./java-cert-importer.sh example.com --delete
java-cert- importer.sh
#!/usr/bin/env bash
# Exit on error
set -e
# Ensure script is running as root
if [ "$EUID" -ne 0 ]
then echo "WARN: Please run as root (sudo)"
exit 1
fi
# Check required commands
command -v openssl >/dev/null 2>&1 || { echo "Required command 'openssl' not installed. Aborting." >&2; exit 1; }
command -v keytool >/dev/null 2>&1 || { echo "Required command 'keytool' not installed. Aborting." >&2; exit 1; }
# Get command line args
host=$1; port=${2:-443}; deleteCmd=${3:-${2}}
# Check host argument
if [ ! ${host} ]; then
cat << EOF
Please enter required parameter(s)
usage: ./java-cert-importer.sh <host> [ <port> | default=443 ] [ -d | --delete ]
EOF
exit 1
fi;
if [ "$JAVA_HOME" ]; then
javahome=${JAVA_HOME}
elif [[ "$OSTYPE" == "linux-gnu" ]]; then # Linux
javahome=$(readlink -f $(which java) | sed "s:bin/java::")
elif [[ "$OSTYPE" == "darwin"* ]]; then # Mac OS X
javahome="$(/usr/libexec/java_home)/jre"
fi
if [ ! "$javahome" ]; then
echo "WARN: Java home cannot be found."
exit 1
elif [ ! -d "$javahome" ]; then
echo "WARN: Detected Java home does not exists: $javahome"
exit 1
fi
echo "Detected Java Home: $javahome"
# Set cacerts file path
cacertspath=${javahome}/lib/security/cacerts
cacertsbackup="${cacertspath}.$$.backup"
if ( [ "$deleteCmd" == "-d" ] || [ "$deleteCmd" == "--delete" ] ); then
sudo keytool -delete -alias ${host} -keystore ${cacertspath} -storepass changeit
echo "Certificate is deleted for ${host}"
exit 0
fi
# Get host info from user
#read -p "Enter server host (E.g. example.com) : " host
#read -p "Enter server port (Default 443) : " port
# create temp file
tmpfile="/tmp/${host}.$$.crt"
# Create java cacerts backup file
cp ${cacertspath} ${cacertsbackup}
echo "Java CaCerts Backup: ${cacertsbackup}"
# Get certificate from speficied host
openssl x509 -in <(openssl s_client -connect ${host}:${port} -prexit 2>/dev/null) -out ${tmpfile}
# Import certificate into java cacerts file
sudo keytool -importcert -file ${tmpfile} -alias ${host} -keystore ${cacertspath} -storepass changeit
# Remove temp certificate file
rm ${tmpfile}
# Check certificate alias name (same with host) that imported successfully
result=$(keytool -list -v -keystore ${cacertspath} -storepass changeit | grep "Alias name: ${host}")
# Show results to user
if [ "$result" ]; then
echo "Success: Certificate is imported to java cacerts for ${host}";
else
echo "Error: Something went wrong";
fi;
Eric Sink имеет превосходная серия на управлении исходным кодом, нацеленном на новичков. Для специфических особенностей Подверсии, включая установку и администрирование сервера, книга Подверсии является большим ресурсом и включает раздел с примерами типичной сессии с Подверсией (контроль, фиксация, объединяясь и обновляя основы).
Обновление: я забыл упоминать, что для новичков, я также рекомендую бездельничать в графическом клиенте, который удаляет стычку командной строки из полезного опыта. RapidSVN является разумным межплатформенным клиентом. Вы также найдете, что общие IDE или идут с поддержкой Подверсии или имеют плагины, которые могут быть установлены, которые позволяют большинству операций управления версиями быть выполненным в той среде.
@John Миллисемья: При установке сервера Подверсии может быть сложным, в зависимости от общего администраторского опыта, не забывайте, что Вы не должны делать этого только, чтобы иметь предосудительные отношения с репозиторием и справиться с основами - клиент может взаимодействовать с репозиторием в локальной файловой системе.
http://blog.clickablebliss.com/2006/04/26/introduction-to-subversion-screencast/ объясняет, как использовать SVN очень хорошо.
Другая хорошая книга Подверсии Прагматическое Управление версиями с Подверсией , Прагматическая книга Программиста, которая старается изо всех сил делать ключевое понятие управления версиями (от регистрации & контроль к ветвлению & слияние) ясный.
Вы могли бы также требуемый для наблюдения Введение к Распределенному Управлению версиями (Проиллюстрированному) и визуальное руководство по управлению версиями .
Это было только с этим, ведет это, я НАКОНЕЦ понял много вещей, особенно Ветвление и Слияние части ;)
Где делают Вы живете, что можно получить бесплатный перенос!?
Подверсия является сложной для установки - если бы у Вас нет опыта с управлением версиями вообще, я рекомендовал бы использовать распределенный VCS, потому что они не требуют никакой конфигурации сервера. Базар за пять минут является хорошим началом.
Для Подверсии, Вы захотите настроить или svnserve
или mod_dav_svn
модуль Apache. Я предпочитаю модуль Apache, потому что он дает Вам основной веб-просмотр репозитория в сделке. Необходимо будет также создать и настроить репозиторий - посмотрите Глава 5 красной книги SVN для получения дополнительной информации об администрировании репозитория. Затем читайте глава 2 , чтобы изучить, как использовать саму Подверсию.
Jeff отправил хорошую "начинающую" статью для Windows, включая то, как установить svnserve:
Другой маршрут, которым Вы могли следовать, не должен бездельничать с Вашим собственным репозиторием по сути, из страха того, чтобы портить вещи, но Вы могли израсходовать чужой репозиторий или установить Ваше собственное в другом месте. Точка быть, я учился при помощи SourceForge, которая имеет и CVS и SVN..., но слушание хороших вещей о SVN и взвешивании различий между этими двумя, я, конечно, пошел с SVN. Возвращаясь к SourceForge, я запросил тестовый проект, более или менее чтобы видеть, как SourceForge работала..., но после того как я был в, я добрался до проигрывания вокруг с их SVN для моего собственного проекта, перечисленного там; экспериментирование с ним и удаленно и локально. После того как я получил широкое схватывание его функций посредством тестирования его там, я затем продолжал читать дежурную книгу для SVN, свободно распределенную книгу авторов инструмента (книга, уже упомянутая). Это - действительно замечательная книга, и в той точке я начал чувствовать себя комфортно, открыв мой собственный репозиторий в критических системах. От той точки все, в чем Вы нуждаетесь, является Q& сайт как это для конкретных вопросов, с которыми Вы сталкиваетесь и конечно сохраняете бесплатную книгу SVN ссылаемой в закладке для легкого доступа.
Сообщение Ваши вопросы, если Вы застреваете по пути и мы будем рады помочь. Всего наилучшего
Я рекомендую использовать SVN с апачем на Linux, svn как клиент Linux и TortioseSVN на окнах (Он делает большого MS Office diffs).
у меня есть много материала на моем svn, и я не хотел бы не использовать его.