switch
оператор или классы с виртуальными функциями как необычное решение. Или массив указателей на функции. Это, все зависит от того, как сложные условия, иногда нет никакого пути вокруг тех if's. И снова, создание серии классов для предотвращения одного оператора переключения является явно неправильным, код должен быть максимально простым (но не более простым)
Мне недавно пришлось сделать то же самое, и я сделал это так, что мне пришлось полностью удалить текущий сертификат, а затем добавить новый сертификат, иначе я не мог понять, как обновить CSR с 1024 до 2048, что теперь является обязательным.
Итак, чтобы ответить на ваш вопрос, сначала удалите текущий сертификат (это может быть сложно, если это загруженный интернет-магазин), затем пройдите через мастер и переключите CSR с 1024 на 2048 .
Я знаю, что это не лучший ответ, но единственный, который мне удалось найти сразу (и самый простой)
Be warned about trying to get clever with this one. I just got myself in a big mess trying to do exactly this same thing without any downtime.
What I did was :
create another website and generate a cert request for that. made sure to put in the correct common name when generating the request.
I downloaded the certificate that was generated and installed it in my 'Personal' certificates for the Local Computer account (after adding certificate snap in).
Did 'replace' on the main website for the certificate and chose the new updated one.
I ended up getting this error (as reported by Chrome) when accessing the https site.
(net::ERR_SSL_PROTOCOL_ERROR): Unknown error
After playing around and switching back to the original certificate I ended up just removing it and re-keying the certificate. It only led to 1-2 minutes of downtime.
I do think that if you do what I was attempting in the correct order you'd be fine. I think you need to export the .pfx file and then import that. I think whats happening is the original server didnt have the correct private key or something like that and was getting confused.
So I'm upvoting calweb :-)
Вот статья Microsoft KB, объясняющая, как это сделать. Похоже на то, что пытался Саймон: